export default {
    "contractName": "FundRequestContract",
    "abi": [
        {
            "constant": true,
            "inputs": [],
            "name": "claimSignerAddress",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "name": "preconditions",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "fundRepository",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "claimRepository",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_newOwner",
                    "type": "address"
                }
            ],
            "name": "changeOwner",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "name": "_fundRepository",
                    "type": "address"
                },
                {
                    "name": "_claimRepository",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "constructor"
        },
        {
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "fallback"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "from",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "platform",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "platformId",
                    "type": "string"
                },
                {
                    "indexed": false,
                    "name": "token",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "value",
                    "type": "uint256"
                }
            ],
            "name": "Funded",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "solverAddress",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "platform",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "platformId",
                    "type": "string"
                },
                {
                    "indexed": false,
                    "name": "solver",
                    "type": "string"
                },
                {
                    "indexed": false,
                    "name": "token",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "value",
                    "type": "uint256"
                }
            ],
            "name": "Claimed",
            "type": "event"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_platform",
                    "type": "bytes32"
                },
                {
                    "name": "_platformId",
                    "type": "string"
                },
                {
                    "name": "_token",
                    "type": "address"
                },
                {
                    "name": "_value",
                    "type": "uint256"
                }
            ],
            "name": "fund",
            "outputs": [
                {
                    "name": "success",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_from",
                    "type": "address"
                },
                {
                    "name": "_amount",
                    "type": "uint256"
                },
                {
                    "name": "_token",
                    "type": "address"
                },
                {
                    "name": "_data",
                    "type": "bytes"
                }
            ],
            "name": "receiveApproval",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "platform",
                    "type": "bytes32"
                },
                {
                    "name": "platformId",
                    "type": "string"
                },
                {
                    "name": "solver",
                    "type": "string"
                },
                {
                    "name": "solverAddress",
                    "type": "address"
                },
                {
                    "name": "r",
                    "type": "bytes32"
                },
                {
                    "name": "s",
                    "type": "bytes32"
                },
                {
                    "name": "v",
                    "type": "uint8"
                }
            ],
            "name": "claim",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_precondition",
                    "type": "address"
                }
            ],
            "name": "addPrecondition",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_index",
                    "type": "uint256"
                }
            ],
            "name": "removePrecondition",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_repositoryAddress",
                    "type": "address"
                }
            ],
            "name": "setFundRepository",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_claimRepository",
                    "type": "address"
                }
            ],
            "name": "setClaimRepository",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_claimSignerAddress",
                    "type": "address"
                }
            ],
            "name": "setClaimSignerAddress",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "bytecode": "0x606060405234156200001057600080fd5b60405160408062002dbe83398101604052808051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200009582620000bc6401000000000262000756176401000000009004565b620000b4816200015c64010000000002620006b7176401000000009004565b5050620001fc565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200011857600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620001b857600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612bb2806200020c6000396000f3006060604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630b6fc163146100dd578063331297561461013257806336600999146101955780636cd7d86e146101ea578063740e2a29146102235780637b07788e1461025c57806385f529841461027f5780638da5cb5b146102b85780638f4ffcb11461030d578063914810a3146103b15780639963a8e014610406578063a6f9dae1146104b0578063b4cbdd8b146104e9578063b81b0b6a14610522575b34156100db57600080fd5b005b34156100e857600080fd5b6100f061062c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561013d57600080fd5b6101536004808035906020019091905050610652565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101a057600080fd5b6101a8610691565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101f557600080fd5b610221600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506106b7565b005b341561022e57600080fd5b61025a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610756565b005b341561026757600080fd5b61027d60048080359060200190919050506107f5565b005b341561028a57600080fd5b6102b6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610890565b005b34156102c357600080fd5b6102cb610951565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561031857600080fd5b6103af600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610976565b005b34156103bc57600080fd5b6103c4610a6e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561041157600080fd5b61049660048080356000191690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a94565b604051808215151515815260200191505060405180910390f35b34156104bb57600080fd5b6104e7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610aba565b005b34156104f457600080fd5b610520600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b58565b005b341561052d57600080fd5b61061260048080356000191690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035600019169060200190919080356000191690602001909190803560ff16906020019091905050610c35565b604051808215151515815260200191505060405180910390f35b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60048181548110151561066157fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561071257600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107b157600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561085057600080fd5b60048181548110151561085f57fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108eb57600080fd5b600480548060010182816108ff9190612af3565b9160005260206000209001600083909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61097e612b1f565b610986612b1f565b61098e612b1f565b61099784611575565b92506109e96109da6040805190810160405280600581526020017f7c4141437c000000000000000000000000000000000000000000000000000000815250611575565b846115a390919063ffffffff16565b9150610a3b610a2c6040805190810160405280600581526020017f7c4141437c000000000000000000000000000000000000000000000000000000815250611575565b846115a390919063ffffffff16565b9050610a5a610a49836115bd565b610a5283611602565b87898b611660565b1515610a6557600080fd5b50505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610aa38585858533611660565b1515610aae57600080fd5b60019050949350505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b1557600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610b9557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bf057600080fd5b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000806000806000610c4c8c8c8c8c8c8c8c611d84565b1515610c5757600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b4d168f78d8d6040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d10578082015181840152602081019050610cf5565b50505050905090810190601f168015610d3d5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1515610d5c57600080fd5b5af11515610d6957600080fd5b505050604051805190509350600092505b8383101561143b57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d7258318d8d866040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180846000191660001916815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610e42578082015181840152602081019050610e27565b50505050905090810190601f168015610e6f5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1515610e8f57600080fd5b5af11515610e9c57600080fd5b505050604051805190509150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166336e4f9158d8d856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808460001916600019168152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015610f94578082015181840152602081019050610f79565b50505050905090810190601f168015610fc15780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1515610fe157600080fd5b5af11515610fee57600080fd5b5050506040518051905090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8a836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561109c57600080fd5b5af115156110a957600080fd5b5050506040518051905015156110be57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dbbd3a718a8e8e8e87876040518763ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001866000191660001916815260200180602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001838103835287818151815260200191508051906020019080838360005b838110156111e95780820151818401526020810190506111ce565b50505050905090810190601f1680156112165780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b8381101561124f578082015181840152602081019050611234565b50505050905090810190601f16801561127c5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b15156112a057600080fd5b5af115156112ad57600080fd5b5050506040518051905015156112c257600080fd5b8873ffffffffffffffffffffffffffffffffffffffff167f75e2571fd135a0fe6a85cd988e0771a1564c1c67b65a89fa74e13d15c5f96b228d8d8d868660405180866000191660001916815260200180602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001838103835287818151815260200191508051906020019080838360005b8381101561138957808201518184015260208101905061136e565b50505050905090810190601f1680156113b65780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156113ef5780820151818401526020810190506113d4565b50505050905090810190601f16801561141c5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a28280600101935050610d7a565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663474448c48d8d6040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b838110156114f45780820151818401526020810190506114d9565b50505050905090810190601f1680156115215780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b151561154057600080fd5b5af1151561154d57600080fd5b50505060405180519050151561156257600080fd5b6001945050505050979650505050505050565b61157d612b1f565b600060208301905060408051908101604052808451815260200182815250915050919050565b6115ab612b1f565b6115b6838383611ed5565b5092915050565b60006115c7612b39565b6115cf612b4d565b6115d884611602565b91508190506000815114156115f357600060010292506115fb565b602082015192505b5050919050565b61160a612b39565b611612612b39565b600083600001516040518059106116265750595b9080825280601f01601f191660200182016040525091506020820190506116568185602001518660000151611f73565b8192505050919050565b600080600090505b6004805490508110156118a257600073ffffffffffffffffffffffffffffffffffffffff1660048281548110151561169c57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611895576004818154811015156116f457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a8c23cb988888888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808660001916600019168152602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825286818151815260200191508051906020019080838360005b83811015611823578082015181840152602081019050611808565b50505050905090810190601f1680156118505780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561187257600080fd5b5af1151561187f57600080fd5b50505060405180519050151561189457600080fd5b5b8080600101915050611668565b6000841115156118b157600080fd5b8473ffffffffffffffffffffffffffffffffffffffff166323b872dd8430876040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561198757600080fd5b5af1151561199457600080fd5b5050506040518051905015156119a957600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639f819b138489896040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611a95578082015181840152602081019050611a7a565b50505050905090810190601f168015611ac25780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1515611ae257600080fd5b5af11515611aef57600080fd5b505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663844c7d9584898989896040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018560001916600019168152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015611c18578082015181840152602081019050611bfd565b50505050905090810190601f168015611c455780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b1515611c6757600080fd5b5af11515611c7457600080fd5b5050508273ffffffffffffffffffffffffffffffffffffffff167fa8e42467e067b2e23dc8977de880b1c29b0441fdeeca47e601f253c000af7b3488888888604051808560001916600019168152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015611d39578082015181840152602081019050611d1e565b50505050905090810190601f168015611d665780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a2600191505095945050505050565b6000806000611d958a8a8a8a611fbe565b6040518082805190602001908083835b602083101515611dca5780518252602082019150602081019050602083039250611da5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600182858888604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11515611e6a57600080fd5b50506020604051035190508073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161492505050979650505050505050565b611edd612b1f565b6000611efb856000015186602001518660000151876020015161202f565b90508460200151836020018181525050846020015181038360000181815250508460000151856020015101811415611f3d576000856000018181525050611f68565b8360000151836000015101856000018181510391508181525050836000015181018560200181815250505b829150509392505050565b60005b602082101515611f9b5782518452602084019350602083019250602082039150611f76565b6001826020036101000a0390508019835116818551168181178652505050505050565b611fc6612b39565b612025611fda611fd5846120eb565b61233a565b612017611fe68661233a565b612009611ff28961233a565b611ffb8b612391565b61257e90919063ffffffff16565b61257e90919063ffffffff16565b61257e90919063ffffffff16565b9050949350505050565b600080600080600088871115156120d9576020871115156120905760018760200360080260020a031980875116888b038a018a96505b81838851161461208557600187019650806001880310612065578b8b0196505b5050508394506120df565b8686209150879350600092505b868903831115156120d85786842090508060001916826000191614156120c5578394506120df565b600184019350828060010193505061209d565b5b88880194505b50505050949350505050565b6120f3612b39565b6120fb612b4d565b60008060008060286040518059106121105750595b9080825280601f01601f19166020018201604052509450600093505b60148410156122ef578360130360080260020a8773ffffffffffffffffffffffffffffffffffffffff1681151561215f57fe5b047f01000000000000000000000000000000000000000000000000000000000000000292506010837f0100000000000000000000000000000000000000000000000000000000000000900460ff168115156121b657fe5b047f0100000000000000000000000000000000000000000000000000000000000000029150817f01000000000000000000000000000000000000000000000000000000000000009004601002837f01000000000000000000000000000000000000000000000000000000000000009004037f0100000000000000000000000000000000000000000000000000000000000000029050612254826125cb565b858560020281518110151561226557fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061229e816125cb565b85600186600202018151811015156122b257fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350838060010194505061212c565b61232e6040805190810160405280600281526020017f30780000000000000000000000000000000000000000000000000000000000008152508661257e565b95505050505050919050565b612342612b39565b61238a826040805190810160405280600181526020017f5f0000000000000000000000000000000000000000000000000000000000000081525061257e90919063ffffffff16565b9050919050565b612399612b39565b6123a1612b4d565b60008060006123ae612b4d565b60206040518059106123bd5750595b9080825280601f01601f1916602001820160405250945060009350600092505b602083101561249b578260080260020a876001900402600102915060007f010000000000000000000000000000000000000000000000000000000000000002827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151561248e5781858581518110151561245557fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535083806001019450505b82806001019350506123dd565b836040518059106124a95750595b9080825280601f01601f19166020018201604052509050600092505b838310156125715784838151811015156124db57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002818481518110151561253457fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535082806001019350506124c5565b8095505050505050919050565b612586612b39565b6125c383836020604051908101604052806000815250602060405190810160405280600081525060206040519081016040528060008152506126bb565b905092915050565b6000600a7f010000000000000000000000000000000000000000000000000000000000000002827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916101561266a576030827f01000000000000000000000000000000000000000000000000000000000000009004017f01000000000000000000000000000000000000000000000000000000000000000290506126b6565b6057827f01000000000000000000000000000000000000000000000000000000000000009004017f01000000000000000000000000000000000000000000000000000000000000000290505b919050565b6126c3612b39565b6126cb612b4d565b6126d3612b4d565b6126db612b4d565b6126e3612b4d565b6126eb612b4d565b6126f3612b39565b6126fb612b4d565b6000808e98508d97508c96508b95508a94508451865188518a518c51010101016040518059106127285750595b9080825280601f01601f1916602001820160405250935083925060009150600090505b88518110156127fe57888181518110151561276257fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283838060010194508151811015156127c157fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808060010191505061274b565b600090505b87518110156128b657878181518110151561281a57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002838380600101945081518110151561287957fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050612803565b600090505b865181101561296e5786818151811015156128d257fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002838380600101945081518110151561293157fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806001019150506128bb565b600090505b8551811015612a2657858181518110151561298a57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283838060010194508151811015156129e957fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050612973565b600090505b8451811015612ade578481815181101515612a4257fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028383806001019450815181101515612aa157fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050612a2b565b82995050505050505050505095945050505050565b815481835581811511612b1a57818360005260206000209182019101612b199190612b61565b5b505050565b604080519081016040528060008152602001600081525090565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b612b8391905b80821115612b7f576000816000905550600101612b67565b5090565b905600a165627a7a72305820d9b6fee6547856dcf30b9e8a83e295e598fff0c6de2947f5ecd36dcc32864f030029",
    "deployedBytecode": "0x6060604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630b6fc163146100dd578063331297561461013257806336600999146101955780636cd7d86e146101ea578063740e2a29146102235780637b07788e1461025c57806385f529841461027f5780638da5cb5b146102b85780638f4ffcb11461030d578063914810a3146103b15780639963a8e014610406578063a6f9dae1146104b0578063b4cbdd8b146104e9578063b81b0b6a14610522575b34156100db57600080fd5b005b34156100e857600080fd5b6100f061062c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561013d57600080fd5b6101536004808035906020019091905050610652565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101a057600080fd5b6101a8610691565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101f557600080fd5b610221600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506106b7565b005b341561022e57600080fd5b61025a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610756565b005b341561026757600080fd5b61027d60048080359060200190919050506107f5565b005b341561028a57600080fd5b6102b6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610890565b005b34156102c357600080fd5b6102cb610951565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561031857600080fd5b6103af600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610976565b005b34156103bc57600080fd5b6103c4610a6e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561041157600080fd5b61049660048080356000191690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a94565b604051808215151515815260200191505060405180910390f35b34156104bb57600080fd5b6104e7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610aba565b005b34156104f457600080fd5b610520600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b58565b005b341561052d57600080fd5b61061260048080356000191690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035600019169060200190919080356000191690602001909190803560ff16906020019091905050610c35565b604051808215151515815260200191505060405180910390f35b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60048181548110151561066157fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561071257600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107b157600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561085057600080fd5b60048181548110151561085f57fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108eb57600080fd5b600480548060010182816108ff9190612af3565b9160005260206000209001600083909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61097e612b1f565b610986612b1f565b61098e612b1f565b61099784611575565b92506109e96109da6040805190810160405280600581526020017f7c4141437c000000000000000000000000000000000000000000000000000000815250611575565b846115a390919063ffffffff16565b9150610a3b610a2c6040805190810160405280600581526020017f7c4141437c000000000000000000000000000000000000000000000000000000815250611575565b846115a390919063ffffffff16565b9050610a5a610a49836115bd565b610a5283611602565b87898b611660565b1515610a6557600080fd5b50505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610aa38585858533611660565b1515610aae57600080fd5b60019050949350505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b1557600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610b9557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bf057600080fd5b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000806000806000610c4c8c8c8c8c8c8c8c611d84565b1515610c5757600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b4d168f78d8d6040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d10578082015181840152602081019050610cf5565b50505050905090810190601f168015610d3d5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1515610d5c57600080fd5b5af11515610d6957600080fd5b505050604051805190509350600092505b8383101561143b57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d7258318d8d866040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180846000191660001916815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610e42578082015181840152602081019050610e27565b50505050905090810190601f168015610e6f5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1515610e8f57600080fd5b5af11515610e9c57600080fd5b505050604051805190509150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166336e4f9158d8d856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808460001916600019168152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015610f94578082015181840152602081019050610f79565b50505050905090810190601f168015610fc15780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1515610fe157600080fd5b5af11515610fee57600080fd5b5050506040518051905090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8a836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561109c57600080fd5b5af115156110a957600080fd5b5050506040518051905015156110be57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dbbd3a718a8e8e8e87876040518763ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001866000191660001916815260200180602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001838103835287818151815260200191508051906020019080838360005b838110156111e95780820151818401526020810190506111ce565b50505050905090810190601f1680156112165780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b8381101561124f578082015181840152602081019050611234565b50505050905090810190601f16801561127c5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b15156112a057600080fd5b5af115156112ad57600080fd5b5050506040518051905015156112c257600080fd5b8873ffffffffffffffffffffffffffffffffffffffff167f75e2571fd135a0fe6a85cd988e0771a1564c1c67b65a89fa74e13d15c5f96b228d8d8d868660405180866000191660001916815260200180602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001838103835287818151815260200191508051906020019080838360005b8381101561138957808201518184015260208101905061136e565b50505050905090810190601f1680156113b65780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156113ef5780820151818401526020810190506113d4565b50505050905090810190601f16801561141c5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a28280600101935050610d7a565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663474448c48d8d6040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b838110156114f45780820151818401526020810190506114d9565b50505050905090810190601f1680156115215780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b151561154057600080fd5b5af1151561154d57600080fd5b50505060405180519050151561156257600080fd5b6001945050505050979650505050505050565b61157d612b1f565b600060208301905060408051908101604052808451815260200182815250915050919050565b6115ab612b1f565b6115b6838383611ed5565b5092915050565b60006115c7612b39565b6115cf612b4d565b6115d884611602565b91508190506000815114156115f357600060010292506115fb565b602082015192505b5050919050565b61160a612b39565b611612612b39565b600083600001516040518059106116265750595b9080825280601f01601f191660200182016040525091506020820190506116568185602001518660000151611f73565b8192505050919050565b600080600090505b6004805490508110156118a257600073ffffffffffffffffffffffffffffffffffffffff1660048281548110151561169c57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611895576004818154811015156116f457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a8c23cb988888888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808660001916600019168152602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825286818151815260200191508051906020019080838360005b83811015611823578082015181840152602081019050611808565b50505050905090810190601f1680156118505780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561187257600080fd5b5af1151561187f57600080fd5b50505060405180519050151561189457600080fd5b5b8080600101915050611668565b6000841115156118b157600080fd5b8473ffffffffffffffffffffffffffffffffffffffff166323b872dd8430876040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561198757600080fd5b5af1151561199457600080fd5b5050506040518051905015156119a957600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639f819b138489896040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611a95578082015181840152602081019050611a7a565b50505050905090810190601f168015611ac25780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1515611ae257600080fd5b5af11515611aef57600080fd5b505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663844c7d9584898989896040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018560001916600019168152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015611c18578082015181840152602081019050611bfd565b50505050905090810190601f168015611c455780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b1515611c6757600080fd5b5af11515611c7457600080fd5b5050508273ffffffffffffffffffffffffffffffffffffffff167fa8e42467e067b2e23dc8977de880b1c29b0441fdeeca47e601f253c000af7b3488888888604051808560001916600019168152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015611d39578082015181840152602081019050611d1e565b50505050905090810190601f168015611d665780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a2600191505095945050505050565b6000806000611d958a8a8a8a611fbe565b6040518082805190602001908083835b602083101515611dca5780518252602082019150602081019050602083039250611da5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600182858888604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11515611e6a57600080fd5b50506020604051035190508073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161492505050979650505050505050565b611edd612b1f565b6000611efb856000015186602001518660000151876020015161202f565b90508460200151836020018181525050846020015181038360000181815250508460000151856020015101811415611f3d576000856000018181525050611f68565b8360000151836000015101856000018181510391508181525050836000015181018560200181815250505b829150509392505050565b60005b602082101515611f9b5782518452602084019350602083019250602082039150611f76565b6001826020036101000a0390508019835116818551168181178652505050505050565b611fc6612b39565b612025611fda611fd5846120eb565b61233a565b612017611fe68661233a565b612009611ff28961233a565b611ffb8b612391565b61257e90919063ffffffff16565b61257e90919063ffffffff16565b61257e90919063ffffffff16565b9050949350505050565b600080600080600088871115156120d9576020871115156120905760018760200360080260020a031980875116888b038a018a96505b81838851161461208557600187019650806001880310612065578b8b0196505b5050508394506120df565b8686209150879350600092505b868903831115156120d85786842090508060001916826000191614156120c5578394506120df565b600184019350828060010193505061209d565b5b88880194505b50505050949350505050565b6120f3612b39565b6120fb612b4d565b60008060008060286040518059106121105750595b9080825280601f01601f19166020018201604052509450600093505b60148410156122ef578360130360080260020a8773ffffffffffffffffffffffffffffffffffffffff1681151561215f57fe5b047f01000000000000000000000000000000000000000000000000000000000000000292506010837f0100000000000000000000000000000000000000000000000000000000000000900460ff168115156121b657fe5b047f0100000000000000000000000000000000000000000000000000000000000000029150817f01000000000000000000000000000000000000000000000000000000000000009004601002837f01000000000000000000000000000000000000000000000000000000000000009004037f0100000000000000000000000000000000000000000000000000000000000000029050612254826125cb565b858560020281518110151561226557fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061229e816125cb565b85600186600202018151811015156122b257fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350838060010194505061212c565b61232e6040805190810160405280600281526020017f30780000000000000000000000000000000000000000000000000000000000008152508661257e565b95505050505050919050565b612342612b39565b61238a826040805190810160405280600181526020017f5f0000000000000000000000000000000000000000000000000000000000000081525061257e90919063ffffffff16565b9050919050565b612399612b39565b6123a1612b4d565b60008060006123ae612b4d565b60206040518059106123bd5750595b9080825280601f01601f1916602001820160405250945060009350600092505b602083101561249b578260080260020a876001900402600102915060007f010000000000000000000000000000000000000000000000000000000000000002827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151561248e5781858581518110151561245557fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535083806001019450505b82806001019350506123dd565b836040518059106124a95750595b9080825280601f01601f19166020018201604052509050600092505b838310156125715784838151811015156124db57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002818481518110151561253457fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535082806001019350506124c5565b8095505050505050919050565b612586612b39565b6125c383836020604051908101604052806000815250602060405190810160405280600081525060206040519081016040528060008152506126bb565b905092915050565b6000600a7f010000000000000000000000000000000000000000000000000000000000000002827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916101561266a576030827f01000000000000000000000000000000000000000000000000000000000000009004017f01000000000000000000000000000000000000000000000000000000000000000290506126b6565b6057827f01000000000000000000000000000000000000000000000000000000000000009004017f01000000000000000000000000000000000000000000000000000000000000000290505b919050565b6126c3612b39565b6126cb612b4d565b6126d3612b4d565b6126db612b4d565b6126e3612b4d565b6126eb612b4d565b6126f3612b39565b6126fb612b4d565b6000808e98508d97508c96508b95508a94508451865188518a518c51010101016040518059106127285750595b9080825280601f01601f1916602001820160405250935083925060009150600090505b88518110156127fe57888181518110151561276257fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283838060010194508151811015156127c157fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808060010191505061274b565b600090505b87518110156128b657878181518110151561281a57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002838380600101945081518110151561287957fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050612803565b600090505b865181101561296e5786818151811015156128d257fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002838380600101945081518110151561293157fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806001019150506128bb565b600090505b8551811015612a2657858181518110151561298a57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283838060010194508151811015156129e957fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050612973565b600090505b8451811015612ade578481815181101515612a4257fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028383806001019450815181101515612aa157fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050612a2b565b82995050505050505050505095945050505050565b815481835581811511612b1a57818360005260206000209182019101612b199190612b61565b5b505050565b604080519081016040528060008152602001600081525090565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b612b8391905b80821115612b7f576000816000905550600101612b67565b5090565b905600a165627a7a72305820d9b6fee6547856dcf30b9e8a83e295e598fff0c6de2947f5ecd36dcc32864f030029",
    "sourceMap": "435:4770:5:-;;;1095:184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;421:10:4;413:5;;:18;;;;;;;;;;;;;;;;;;1192:34:5;1210:15;1192:17;;;;;:34;;;:::i;:::-;1236:36;1255:16;1236:18;;;;;:36;;;:::i;:::-;1095:184;;435:4770;;4668:140;275:5:4;;;;;;;;;;;261:19;;:10;:19;;;252:29;;;;;;;;4782:18:5;4750:14;;:51;;;;;;;;;;;;;;;;;;4668:140;:::o;4814:139::-;275:5:4;;;;;;;;;;;261:19;;:10;:19;;;252:29;;;;;;;;4929:16:5;4895:15;;:51;;;;;;;;;;;;;;;;;;4814:139;:::o;435:4770::-;;;;;;;",
    "deployedSourceMap": "435:4770:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;910:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;950:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;822:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4814:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;4668:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;4441:103;;;;;;;;;;;;;;;;;;;;;;;;;;4306:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;291:20:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1532:354:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1303:223;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;658:85:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;4959:170:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;2646:924;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;910:33;;;;;;;;;;;;;:::o;950:35::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;822:36::-;;;;;;;;;;;;;:::o;4814:139::-;275:5:4;;;;;;;;;;;261:19;;:10;:19;;;252:29;;;;;;;;4929:16:5;4895:15;;:51;;;;;;;;;;;;;;;;;;4814:139;:::o;4668:140::-;275:5:4;;;;;;;;;;;261:19;;:10;:19;;;252:29;;;;;;;;4782:18:5;4750:14;;:51;;;;;;;;;;;;;;;;;;4668:140;:::o;4441:103::-;275:5:4;;;;;;;;;;;261:19;;:10;:19;;;252:29;;;;;;;;4516:13:5;4530:6;4516:21;;;;;;;;;;;;;;;;;;;4509:28;;;;;;;;;;;4441:103;:::o;4306:129::-;275:5:4;;;;;;;;;;;261:19;;:10;:19;;;252:29;;;;;;;;4381:13:5;:47;;;;;;;;;;;:::i;:::-;;;;;;;;;;4413:13;4381:47;;;;;;;;;;;;;;;;;;;;;;;4306:129;:::o;291:20:4:-;;;;;;;;;;;;;:::o;1532:354:5:-;1632:10;;:::i;:::-;1678:12;;:::i;:::-;1734:14;;:::i;:::-;1645:23;1652:5;1645:21;:23::i;:::-;1632:36;;1693:31;1706:17;:15;;;;;;;;;;;;;;;;;;;:17::i;:::-;1693:6;:12;;:31;;;;:::i;:::-;1678:46;;1751:31;1764:17;:15;;;;;;;;;;;;;;;;;;;:17::i;:::-;1751:6;:12;;:31;;;;:::i;:::-;1734:48;;1800:78;1810:20;:8;:18;:20::i;:::-;1832:21;:10;:19;:21::i;:::-;1855:6;1863:7;1872:5;1800:9;:78::i;:::-;1792:87;;;;;;;;1532:354;;;;;;;:::o;865:38::-;;;;;;;;;;;;;:::o;1303:223::-;1404:12;1436:61;1446:9;1457:11;1470:6;1478;1486:10;1436:9;:61::i;:::-;1428:70;;;;;;;;1515:4;1508:11;;1303:223;;;;;;:::o;658:85:4:-;275:5;;;;;;;;;;;261:19;;:10;:19;;;252:29;;;;;;;;729:9;721:5;;:17;;;;;;;;;;;;;;;;;;658:85;:::o;4959:170:5:-;5034:19;1068:1;1050:20;;:6;:20;;;;1042:29;;;;;;;;275:5:4;;;;;;;;;;;261:19;;:10;:19;;;252:29;;;;;;;;5103:19:5;5082:18;;:40;;;;;;;;;;;;;;;;;;4959:170;;:::o;2646:924::-;2783:4;2882:18;2974:6;3021:13;3113:19;2807:64;2818:8;2828:10;2840:6;2848:13;2863:1;2866;2869;2807:10;:64::i;:::-;2799:73;;;;;;;;2903:14;;;;;;;;;;;:34;;;2938:8;2948:10;2903:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2903:56:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2882:77;;2983:1;2974:10;;2969:501;2990:10;2986:1;:14;2969:501;;;3037:14;;;;;;;;;;;:37;;;3075:8;3085:10;3097:1;3037:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3037:62:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3021:78;;3135:14;;;;;;;;;;;:25;;;3161:8;3171:10;3183:5;3135:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3135:54:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3113:76;;3217:5;3211:21;;;3233:13;3248:11;3211:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3203:58;;;;;;;;3283:15;;;;;;;;;;;:24;;;3308:13;3323:8;3333:10;3345:6;3353:5;3360:11;3283:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3283:89:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3283:89:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3275:98;;;;;;;;3395:13;3387:72;;;3410:8;3420:10;3432:6;3440:5;3447:11;3387:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3387:72:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3387:72:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3002:3;;;;;;;2969:501;;;3487:14;;;;;;;;;;;:32;;;3520:8;3530:10;3487:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3487:54:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3479:63;;;;;;;;3559:4;3552:11;;2646:924;;;;;;;;;;;;;:::o;2810:187:14:-;2858:5;;:::i;:::-;2875:8;2929:4;2923;2919:15;2912:22;;2960:30;;;;;;;;;2972:4;2966:18;2960:30;;;;2986:3;2960:30;;;2953:37;;2810:187;;;;:::o;20444:115::-;20503:11;;:::i;:::-;20526:26;20532:4;20538:6;20546:5;20526;:26::i;:::-;;20444:115;;;;:::o;26032:333::-;26081:14;26107:20;;:::i;:::-;26154:32;;:::i;:::-;26130:14;26139:4;26130:8;:14::i;:::-;26107:37;;26195:6;26154:48;;26246:1;26216:19;:26;:31;26212:72;;;26270:3;26263:10;;;;;;26212:72;26345:2;26337:6;26333:15;26327:22;26317:32;;26303:56;;;;;;:::o;5075:234::-;5123:6;;:::i;:::-;5141:7;;:::i;:::-;5182:11;5162:4;:9;;;5151:21;;;;;;;;;;;;;;;;;;;;;;;;;;;5141:31;;5232:2;5227:3;5223:12;5213:22;;5246:36;5253:6;5261:4;:9;;;5272:4;:9;;;5246:6;:36::i;:::-;5299:3;5292:10;;5075:234;;;;;:::o;1892:748:5:-;2017:12;2046:8;2057:1;2046:12;;2041:242;2066:13;:20;;;;2060:3;:26;2041:242;;;2152:1;2113:41;;2121:13;2135:3;2121:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;2113:41;;;;2109:164;;;2182:13;2196:3;2182:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;2209:9;2220:11;2233:6;2241;2249:7;2182:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2182:75:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2174:84;;;;;;;;2109:164;2088:5;;;;;;;2041:242;;;2309:1;2300:6;:10;2292:19;;;;;;;;2335:6;2329:26;;;2356:7;2373:4;2380:6;2329:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2321:67;;;;;;;;2398:14;;;;;;;;;;;:28;;;2427:7;2436:9;2447:11;2398:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2398:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2469:14;;;;;;;;;;;:29;;;2499:7;2508:9;2519:11;2532:6;2540;2469:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2469:78:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2564:7;2557:55;;;2573:9;2584:11;2597:6;2605;2557:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2557:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2629:4;2622:11;;1892:748;;;;;;;;:::o;3576:357::-;3725:4;3741:5;3829:21;3759:59;3774:8;3784:10;3796:6;3804:13;3759:14;:59::i;:::-;3749:70;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3749:70:5;;;;;;;;;;;;;;;;3741:78;;3853:21;3863:1;3866;3869;3872;3853:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3829:45;;3913:13;3891:35;;:18;;;;;;;;;;;:35;;;3884:42;;3576:357;;;;;;;;;;;:::o;19494:479:14:-;19566:5;;:::i;:::-;19583:8;19594:55;19602:4;:9;;;19613:4;:9;;;19624:6;:11;;;19637:6;:11;;;19594:7;:55::i;:::-;19583:66;;19672:4;:9;;;19659:5;:10;;:22;;;;;19710:4;:9;;;19704:3;:15;19691:5;:10;;:28;;;;;19752:4;:9;;;19740:4;:9;;;:21;19733:3;:28;19729:216;;;19814:1;19802:4;:9;;:13;;;;;19729:216;;;19880:6;:11;;;19867:5;:10;;;:24;19854:4;:9;;:37;;;;;;;;;;;19923:6;:11;;;19917:3;:17;19905:4;:9;;:29;;;;;19729:216;19961:5;19954:12;;19494:479;;;;;;:::o;2082:528::-;2400:9;2197:161;2211:2;2204:3;:9;;2197:161;;;2282:3;2276:10;2270:4;2263:24;2322:2;2314:10;;;;2345:2;2338:9;;;;2222:2;2215:9;;;;2197:161;;;2432:1;2425:3;2420:2;:8;2412:3;:17;:21;2400:33;;2497:4;2493:9;2487:3;2481:10;2477:26;2545:4;2538;2532:11;2528:22;2585:7;2575:8;2572:21;2566:4;2559:35;2452:152;;;;;;:::o;3939:361:5:-;4061:6;;:::i;:::-;4086:207;4235:57;4253:38;4277:13;4253:23;:38::i;:::-;4235:17;:57::i;:::-;4086:129;4189:25;4207:6;4189:17;:25::i;:::-;4086:83;4139:29;4157:10;4139:17;:29::i;:::-;4086:33;4110:8;4086:23;:33::i;:::-;:52;;:83;;;;:::i;:::-;:102;;:129;;;;:::i;:::-;:148;;:207;;;;:::i;:::-;4079:214;;3939:361;;;;;;:::o;14883:1394:14:-;14977:4;14993:8;15011;15816:12;16010:16;15047:7;15034:9;:20;;15030:1207;;;15087:2;15074:9;:15;;15070:1157;;;15267:1;15253:9;15249:2;15245:18;15242:1;15238:26;15235:1;15231:34;15227:42;15223:47;15327:4;15315:9;15309:16;15305:27;15386:9;15377:7;15373:23;15364:7;15360:37;15421:7;15414:14;;15445:4;15506:10;15499:4;15493:3;15487:10;15483:21;15480:37;15474:4;15468:50;15551:1;15546:3;15542:11;15535:18;;15598:3;15594:1;15589:3;15585:11;15582:20;15576:4;15570:33;15640:7;15631;15627:21;15620:28;;15665:4;15193:496;;;15713:3;15706:10;;;;15070:1157;15880:9;15869;15864:26;15856:34;;15914:7;15908:13;;15950:1;15944:7;;15939:274;15970:9;15960:7;:19;15953:3;:26;;15939:274;;;16080:9;16075:3;16070:20;16058:32;;16124:8;16116:16;;;:4;:16;;;;16112:52;;;16161:3;16154:10;;;;16112:52;16193:1;16186:8;;;;15981:5;;;;;;;15939:274;;;15030:1207;16263:7;16253;:17;16246:24;;14883:1394;;;;;;;;;;;:::o;26371:452::-;26430:6;;:::i;:::-;26448:14;;:::i;:::-;26493:6;26532;26599:7;26642;26475:2;26465:13;;;;;;;;;;;;;;;;;;;;;;;;;;;26448:30;;26502:1;26493:10;;26488:288;26509:2;26505:1;:6;26488:288;;;26579:1;26574:2;:6;26569:1;:12;26563:1;:19;26557:1;26552:7;;:31;;;;;;;;26541:44;;26532:53;;26625:2;26620:1;26614:8;;;:13;;;;;;;;;;26609:19;;26599:29;;26679:2;26673:9;;;26668:2;:14;26663:1;26657:8;;;:25;26652:31;;26642:41;;26708:14;26719:2;26708:10;:14::i;:::-;26697:1;26703;26699;:5;26697:8;;;;;;;;;;;;;;:25;;;;;;;;;;;26751:14;26762:2;26751:10;:14::i;:::-;26736:1;26746;26742;26738;:5;:9;26736:12;;;;;;;;;;;;;;:29;;;;;;;;;;;26513:3;;;;;;;26488:288;;;26790:26;;;;;;;;;;;;;;;;;;;26813:1;26790:9;:26::i;:::-;26783:33;;26371:452;;;;;;;;:::o;4550:112:5:-;4612:6;;:::i;:::-;4637:18;4651:3;4637:13;;;;;;;;;;;;;;;;;;;;:18;;;;:::i;:::-;4630:25;;4550:112;;;:::o;26994:589:14:-;27053:6;;:::i;:::-;27071:24;;:::i;:::-;27121:14;27154:6;27193:7;27375:31;;:::i;:::-;27108:2;27098:13;;;;;;;;;;;;;;;;;;;;;;;;;;;27071:40;;27138:1;27121:18;;27163:1;27154:10;;27149:217;27170:2;27166:1;:6;27149:217;;;27236:1;27232;:5;27226:1;:12;27221:1;27216:7;;;:22;27208:31;;27193:47;;27264:1;27258:7;;:2;:7;;;;;27254:102;;;27310:2;27285:11;27297:9;27285:22;;;;;;;;;;;;;;:27;;;;;;;;;;;27330:11;;;;;;;27254:102;27174:3;;;;;;;27149:217;;;27419:9;27409:20;;;;;;;;;;;;;;;;;;;;;;;;;;;27375:54;;27448:1;27444:5;;27439:95;27455:9;27451:1;:13;27439:95;;;27509:11;27521:1;27509:14;;;;;;;;;;;;;;;;;;;;27485:18;27504:1;27485:21;;;;;;;;;;;;;;:38;;;;;;;;;;;27466:3;;;;;;;27439:95;;;27557:18;27543:33;;26994:589;;;;;;;;:::o;24831:125::-;24895:6;;:::i;:::-;24920:29;24930:2;24934;24920:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;:29::i;:::-;24913:36;;24831:125;;;;:::o;26829:159::-;26880:6;26906:2;26902:6;;:1;:6;;;;26898:83;;;26933:4;26928:1;26922:8;;;:15;26917:21;;26910:28;;;;26898:83;26976:4;26971:1;26965:8;;;:15;26960:21;;26953:28;;26829:159;;;;:::o;23708:822::-;23805:6;;:::i;:::-;23822:16;;:::i;:::-;23860;;:::i;:::-;23898;;:::i;:::-;23936;;:::i;:::-;23974;;:::i;:::-;24012:19;;:::i;:::-;24118;;:::i;:::-;24162:6;24187;23847:2;23822:28;;23885:2;23860:28;;23923:2;23898:28;;23961:2;23936:28;;23999:2;23974:28;;24097:3;:10;24084:3;:10;24071:3;:10;24058:3;:10;24045:3;:10;:23;:36;:49;:62;24034:74;;;;;;;;;;;;;;;;;;;;;;;;;;;24012:96;;24146:5;24118:34;;24171:1;24162:10;;24196:1;24187:10;;24182:58;24203:3;:10;24199:1;:14;24182:58;;;24234:3;24238:1;24234:6;;;;;;;;;;;;;;;;;;;;24220;24227:3;;;;;;24220:11;;;;;;;;;;;;;;:20;;;;;;;;;;;24215:3;;;;;;;24182:58;;;24259:1;24255:5;;24250:53;24266:3;:10;24262:1;:14;24250:53;;;24297:3;24301:1;24297:6;;;;;;;;;;;;;;;;;;;;24283;24290:3;;;;;;24283:11;;;;;;;;;;;;;;:20;;;;;;;;;;;24278:3;;;;;;;24250:53;;;24322:1;24318:5;;24313:53;24329:3;:10;24325:1;:14;24313:53;;;24360:3;24364:1;24360:6;;;;;;;;;;;;;;;;;;;;24346;24353:3;;;;;;24346:11;;;;;;;;;;;;;;:20;;;;;;;;;;;24341:3;;;;;;;24313:53;;;24385:1;24381:5;;24376:53;24392:3;:10;24388:1;:14;24376:53;;;24423:3;24427:1;24423:6;;;;;;;;;;;;;;;;;;;;24409;24416:3;;;;;;24409:11;;;;;;;;;;;;;;:20;;;;;;;;;;;24404:3;;;;;;;24376:53;;;24448:1;24444:5;;24439:53;24455:3;:10;24451:1;:14;24439:53;;;24486:3;24490:1;24486:6;;;;;;;;;;;;;;;;;;;;24472;24479:3;;;;;;24472:11;;;;;;;;;;;;;;:20;;;;;;;;;;;24467:3;;;;;;;24439:53;;;24516:6;24502:21;;23708:822;;;;;;;;;;;;;;;;:::o;435:4770:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
    "source": "pragma solidity 0.4.21;\n\n\nimport \"../math/SafeMath.sol\";\nimport \"../token/FundRequestToken.sol\";\nimport \"../token/ERC20.sol\";\nimport \"./repository/FundRepository.sol\";\nimport \"./repository/ClaimRepository.sol\";\nimport \"../ownership/Owned.sol\";\nimport \"../token/ApproveAndCallFallback.sol\";\nimport \"../utils/strings.sol\";\nimport \"./validation/Precondition.sol\";\n\n\n/*\n * Main FundRequest Contract\n * Davy Van Roy\n * Quinten De Swaef\n */\ncontract FundRequestContract is Owned, ApproveAndCallFallBack {\n\n    using SafeMath for uint256;\n    using strings for *;\n\n    event Funded(address indexed from, bytes32 platform, string platformId, address token, uint256 value);\n\n    event Claimed(address indexed solverAddress, bytes32 platform, string platformId, string solver, address token, uint256 value);\n\n    //repositories\n    FundRepository public fundRepository;\n\n    ClaimRepository public claimRepository;\n\n    address public claimSignerAddress;\n\n    Precondition[] public preconditions;\n\n    modifier addressNotNull(address target) {\n        require(target != address(0));\n        _;\n    }\n\n    function FundRequestContract(address _fundRepository, address _claimRepository) public {\n        setFundRepository(_fundRepository);\n        setClaimRepository(_claimRepository);\n    }\n\n    //entrypoints\n    function fund(bytes32 _platform, string _platformId, address _token, uint256 _value) public returns (bool success) {\n        require(doFunding(_platform, _platformId, _token, _value, msg.sender));\n        return true;\n    }\n\n    function receiveApproval(address _from, uint _amount, address _token, bytes _data) public {\n        var sliced = string(_data).toSlice();\n        var platform = sliced.split(\"|AAC|\".toSlice());\n        var platformId = sliced.split(\"|AAC|\".toSlice());\n        require(doFunding(platform.toBytes32(), platformId.toString(), _token, _amount, _from));\n    }\n\n    function doFunding(bytes32 _platform, string _platformId, address _token, uint256 _value, address _funder) internal returns (bool success) {\n        for (uint idx = 0; idx < preconditions.length; idx++) {\n            if (address(preconditions[idx]) != address(0)) {\n                require(preconditions[idx].isValid(_platform, _platformId, _token, _value, _funder));\n            }\n        }\n        require(_value > 0);\n        require(ERC20(_token).transferFrom(_funder, address(this), _value));\n        fundRepository.updateFunders(_funder, _platform, _platformId);\n        fundRepository.updateBalances(_funder, _platform, _platformId, _token, _value);\n        Funded(_funder, _platform, _platformId, _token, _value);\n        return true;\n    }\n\n    function claim(bytes32 platform, string platformId, string solver, address solverAddress, bytes32 r, bytes32 s, uint8 v) public returns (bool) {\n        require(validClaim(platform, platformId, solver, solverAddress, r, s, v));\n        uint256 tokenCount = fundRepository.getFundedTokenCount(platform, platformId);\n        for (uint i = 0; i < tokenCount; i++) {\n            address token = fundRepository.getFundedTokensByIndex(platform, platformId, i);\n            uint256 tokenAmount = fundRepository.claimToken(platform, platformId, token);\n            require(ERC20(token).transfer(solverAddress, tokenAmount));\n            require(claimRepository.addClaim(solverAddress, platform, platformId, solver, token, tokenAmount));\n            Claimed(solverAddress, platform, platformId, solver, token, tokenAmount);\n        }\n        require(fundRepository.finishResolveFund(platform, platformId));\n        return true;\n    }\n\n    function validClaim(bytes32 platform, string platformId, string solver, address solverAddress, bytes32 r, bytes32 s, uint8 v) internal view returns (bool) {\n        var h = keccak256(createClaimMsg(platform, platformId, solver, solverAddress));\n        address signerAddress = ecrecover(h, v, r, s);\n        return claimSignerAddress == signerAddress;\n    }\n\n    function createClaimMsg(bytes32 platform, string platformId, string solver, address solverAddress) internal pure returns (string) {\n        return strings.bytes32ToString(platform)\n        .strConcat(prependUnderscore(platformId))\n        .strConcat(prependUnderscore(solver))\n        .strConcat(prependUnderscore(strings.addressToString(solverAddress)));\n    }\n\n    function addPrecondition(address _precondition) public onlyOwner {\n        preconditions.push(Precondition(_precondition));\n    }\n\n    function removePrecondition(uint _index) public onlyOwner {\n        delete preconditions[_index];\n    }\n\n    function prependUnderscore(string str) internal pure returns (string) {\n        return \"_\".strConcat(str);\n    }\n\n    function setFundRepository(address _repositoryAddress) public onlyOwner {\n        fundRepository = FundRepository(_repositoryAddress);\n    }\n\n    function setClaimRepository(address _claimRepository) public onlyOwner {\n        claimRepository = ClaimRepository(_claimRepository);\n    }\n\n    function setClaimSignerAddress(address _claimSignerAddress) addressNotNull(_claimSignerAddress) public onlyOwner {\n        claimSignerAddress = _claimSignerAddress;\n    }\n\n    function() public {\n        // dont receive ether via fallback\n    }\n}",
    "sourcePath": "/Users/QuintenDes/FundRequest/contracts/contracts/platform/FundRequestContract.sol",
    "ast": {
        "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/platform/FundRequestContract.sol",
        "exportedSymbols": {
            "FundRequestContract": [
                786
            ]
        },
        "id": 787,
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 246,
                "literals": [
                    "solidity",
                    "0.4",
                    ".21"
                ],
                "nodeType": "PragmaDirective",
                "src": "0:23:5"
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/math/SafeMath.sol",
                "file": "../math/SafeMath.sol",
                "id": 247,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 208,
                "src": "26:30:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/token/FundRequestToken.sol",
                "file": "../token/FundRequestToken.sol",
                "id": 248,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 1861,
                "src": "57:39:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/token/ERC20.sol",
                "file": "../token/ERC20.sol",
                "id": 249,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 1792,
                "src": "97:28:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/platform/repository/FundRepository.sol",
                "file": "./repository/FundRepository.sol",
                "id": 250,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 1506,
                "src": "126:41:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/platform/repository/ClaimRepository.sol",
                "file": "./repository/ClaimRepository.sol",
                "id": 251,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 969,
                "src": "168:42:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/ownership/Owned.sol",
                "file": "../ownership/Owned.sol",
                "id": 252,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 245,
                "src": "211:32:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/token/ApproveAndCallFallback.sol",
                "file": "../token/ApproveAndCallFallback.sol",
                "id": 253,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 1723,
                "src": "244:45:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/utils/strings.sol",
                "file": "../utils/strings.sol",
                "id": 254,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 4977,
                "src": "290:30:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/platform/validation/Precondition.sol",
                "file": "./validation/Precondition.sol",
                "id": 255,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 1572,
                "src": "321:39:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "baseContracts": [
                    {
                        "arguments": [],
                        "baseName": {
                            "contractScope": null,
                            "id": 256,
                            "name": "Owned",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 244,
                            "src": "467:5:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Owned_$244",
                                "typeString": "contract Owned"
                            }
                        },
                        "id": 257,
                        "nodeType": "InheritanceSpecifier",
                        "src": "467:5:5"
                    },
                    {
                        "arguments": [],
                        "baseName": {
                            "contractScope": null,
                            "id": 258,
                            "name": "ApproveAndCallFallBack",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1722,
                            "src": "474:22:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$1722",
                                "typeString": "contract ApproveAndCallFallBack"
                            }
                        },
                        "id": 259,
                        "nodeType": "InheritanceSpecifier",
                        "src": "474:22:5"
                    }
                ],
                "contractDependencies": [
                    244,
                    1722
                ],
                "contractKind": "contract",
                "documentation": null,
                "fullyImplemented": true,
                "id": 786,
                "linearizedBaseContracts": [
                    786,
                    1722,
                    244
                ],
                "name": "FundRequestContract",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "id": 262,
                        "libraryName": {
                            "contractScope": null,
                            "id": 260,
                            "name": "SafeMath",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 207,
                            "src": "510:8:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_SafeMath_$207",
                                "typeString": "library SafeMath"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "504:27:5",
                        "typeName": {
                            "id": 261,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "523:7:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        }
                    },
                    {
                        "id": 264,
                        "libraryName": {
                            "contractScope": null,
                            "id": 263,
                            "name": "strings",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 4976,
                            "src": "542:7:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_strings_$4976",
                                "typeString": "library strings"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "536:20:5",
                        "typeName": null
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 276,
                        "name": "Funded",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 275,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 266,
                                    "indexed": true,
                                    "name": "from",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 276,
                                    "src": "575:20:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 265,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "575:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 268,
                                    "indexed": false,
                                    "name": "platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 276,
                                    "src": "597:16:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 267,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "597:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 270,
                                    "indexed": false,
                                    "name": "platformId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 276,
                                    "src": "615:17:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 269,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "615:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 272,
                                    "indexed": false,
                                    "name": "token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 276,
                                    "src": "634:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 271,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "634:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 274,
                                    "indexed": false,
                                    "name": "value",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 276,
                                    "src": "649:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 273,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "649:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "574:89:5"
                        },
                        "src": "562:102:5"
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 290,
                        "name": "Claimed",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 289,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 278,
                                    "indexed": true,
                                    "name": "solverAddress",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 290,
                                    "src": "684:29:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 277,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "684:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 280,
                                    "indexed": false,
                                    "name": "platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 290,
                                    "src": "715:16:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 279,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "715:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 282,
                                    "indexed": false,
                                    "name": "platformId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 290,
                                    "src": "733:17:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 281,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "733:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 284,
                                    "indexed": false,
                                    "name": "solver",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 290,
                                    "src": "752:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 283,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "752:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 286,
                                    "indexed": false,
                                    "name": "token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 290,
                                    "src": "767:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 285,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "767:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 288,
                                    "indexed": false,
                                    "name": "value",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 290,
                                    "src": "782:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 287,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "782:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "683:113:5"
                        },
                        "src": "670:127:5"
                    },
                    {
                        "constant": false,
                        "id": 292,
                        "name": "fundRepository",
                        "nodeType": "VariableDeclaration",
                        "scope": 786,
                        "src": "822:36:5",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_contract$_FundRepository_$1505",
                            "typeString": "contract FundRepository"
                        },
                        "typeName": {
                            "contractScope": null,
                            "id": 291,
                            "name": "FundRepository",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1505,
                            "src": "822:14:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FundRepository_$1505",
                                "typeString": "contract FundRepository"
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 294,
                        "name": "claimRepository",
                        "nodeType": "VariableDeclaration",
                        "scope": 786,
                        "src": "865:38:5",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ClaimRepository_$968",
                            "typeString": "contract ClaimRepository"
                        },
                        "typeName": {
                            "contractScope": null,
                            "id": 293,
                            "name": "ClaimRepository",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 968,
                            "src": "865:15:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ClaimRepository_$968",
                                "typeString": "contract ClaimRepository"
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 296,
                        "name": "claimSignerAddress",
                        "nodeType": "VariableDeclaration",
                        "scope": 786,
                        "src": "910:33:5",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                        },
                        "typeName": {
                            "id": 295,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "910:7:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 299,
                        "name": "preconditions",
                        "nodeType": "VariableDeclaration",
                        "scope": 786,
                        "src": "950:35:5",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_Precondition_$1571_$dyn_storage",
                            "typeString": "contract Precondition[] storage ref"
                        },
                        "typeName": {
                            "baseType": {
                                "contractScope": null,
                                "id": 297,
                                "name": "Precondition",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 1571,
                                "src": "950:12:5",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Precondition_$1571",
                                    "typeString": "contract Precondition"
                                }
                            },
                            "id": 298,
                            "length": null,
                            "nodeType": "ArrayTypeName",
                            "src": "950:14:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_contract$_Precondition_$1571_$dyn_storage_ptr",
                                "typeString": "contract Precondition[] storage pointer"
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 312,
                            "nodeType": "Block",
                            "src": "1032:57:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 308,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 304,
                                                    "name": "target",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 301,
                                                    "src": "1050:6:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "!=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "hexValue": "30",
                                                            "id": 306,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "number",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "1068:1:5",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            },
                                                            "value": "0"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            }
                                                        ],
                                                        "id": 305,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "nodeType": "ElementaryTypeNameExpression",
                                                        "src": "1060:7:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_address_$",
                                                            "typeString": "type(address)"
                                                        },
                                                        "typeName": "address"
                                                    },
                                                    "id": 307,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "1060:10:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "1050:20:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 303,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4992,
                                            "src": "1042:7:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 309,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1042:29:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 310,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1042:29:5"
                                },
                                {
                                    "id": 311,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "1081:1:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 313,
                        "name": "addressNotNull",
                        "nodeType": "ModifierDefinition",
                        "parameters": {
                            "id": 302,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 301,
                                    "name": "target",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 313,
                                    "src": "1016:14:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 300,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1016:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1015:16:5"
                        },
                        "src": "992:97:5",
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 328,
                            "nodeType": "Block",
                            "src": "1182:97:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 321,
                                                "name": "_fundRepository",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 315,
                                                "src": "1210:15:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 320,
                                            "name": "setFundRepository",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 752,
                                            "src": "1192:17:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                                                "typeString": "function (address)"
                                            }
                                        },
                                        "id": 322,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1192:34:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 323,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1192:34:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 325,
                                                "name": "_claimRepository",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 317,
                                                "src": "1255:16:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 324,
                                            "name": "setClaimRepository",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 766,
                                            "src": "1236:18:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                                                "typeString": "function (address)"
                                            }
                                        },
                                        "id": 326,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1236:36:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 327,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1236:36:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 329,
                        "implemented": true,
                        "isConstructor": true,
                        "isDeclaredConst": false,
                        "modifiers": [],
                        "name": "FundRequestContract",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 318,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 315,
                                    "name": "_fundRepository",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 329,
                                    "src": "1124:23:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 314,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1124:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 317,
                                    "name": "_claimRepository",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 329,
                                    "src": "1149:24:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 316,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1149:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1123:51:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 319,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "1182:0:5"
                        },
                        "scope": 786,
                        "src": "1095:184:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 355,
                            "nodeType": "Block",
                            "src": "1418:108:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 344,
                                                        "name": "_platform",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 331,
                                                        "src": "1446:9:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 345,
                                                        "name": "_platformId",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 333,
                                                        "src": "1457:11:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 346,
                                                        "name": "_token",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 335,
                                                        "src": "1470:6:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 347,
                                                        "name": "_value",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 337,
                                                        "src": "1478:6:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 348,
                                                            "name": "msg",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4989,
                                                            "src": "1486:3:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_magic_message",
                                                                "typeString": "msg"
                                                            }
                                                        },
                                                        "id": 349,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "sender",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "1486:10:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 343,
                                                    "name": "doFunding",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 505,
                                                    "src": "1436:9:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_address_$_t_uint256_$_t_address_$returns$_t_bool_$",
                                                        "typeString": "function (bytes32,string memory,address,uint256,address) returns (bool)"
                                                    }
                                                },
                                                "id": 350,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "1436:61:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 342,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4992,
                                            "src": "1428:7:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 351,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1428:70:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 352,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1428:70:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 353,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1515:4:5",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "true"
                                    },
                                    "functionReturnParameters": 341,
                                    "id": 354,
                                    "nodeType": "Return",
                                    "src": "1508:11:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 356,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [],
                        "name": "fund",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 338,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 331,
                                    "name": "_platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 356,
                                    "src": "1317:17:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 330,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1317:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 333,
                                    "name": "_platformId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 356,
                                    "src": "1336:18:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 332,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1336:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 335,
                                    "name": "_token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 356,
                                    "src": "1356:14:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 334,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1356:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 337,
                                    "name": "_value",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 356,
                                    "src": "1372:14:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 336,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1372:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1316:71:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 341,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 340,
                                    "name": "success",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 356,
                                    "src": "1404:12:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 339,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1404:4:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1403:14:5"
                        },
                        "scope": 786,
                        "src": "1303:223:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 404,
                            "nodeType": "Block",
                            "src": "1622:264:5",
                            "statements": [
                                {
                                    "assignments": [
                                        367
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 367,
                                            "name": "sliced",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 405,
                                            "src": "1632:10:5",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                "typeString": "struct strings.slice memory"
                                            },
                                            "typeName": null,
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 373,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 369,
                                                        "name": "_data",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 364,
                                                        "src": "1652:5:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes memory"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes memory"
                                                        }
                                                    ],
                                                    "id": 368,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "1645:6:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                                                        "typeString": "type(string storage pointer)"
                                                    },
                                                    "typeName": "string"
                                                },
                                                "id": 370,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "1645:13:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory",
                                                    "typeString": "string memory"
                                                }
                                            },
                                            "id": 371,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "toSlice",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2972,
                                            "src": "1645:21:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_struct$_slice_$2912_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                "typeString": "function (string memory) returns (struct strings.slice memory)"
                                            }
                                        },
                                        "id": 372,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1645:23:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                            "typeString": "struct strings.slice memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "1632:36:5"
                                },
                                {
                                    "assignments": [
                                        374
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 374,
                                            "name": "platform",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 405,
                                            "src": "1678:12:5",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                "typeString": "struct strings.slice memory"
                                            },
                                            "typeName": null,
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 381,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [],
                                                "expression": {
                                                    "argumentTypes": [],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "7c4141437c",
                                                        "id": 377,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "1706:7:5",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_bf4c362cf3fbe87352b5ae2c37344de30ad67f5cff32d32d2d6af008c56d7548",
                                                            "typeString": "literal_string \"|AAC|\""
                                                        },
                                                        "value": "|AAC|"
                                                    },
                                                    "id": 378,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "toSlice",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 2972,
                                                    "src": "1706:15:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_struct$_slice_$2912_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                        "typeString": "function (string memory) returns (struct strings.slice memory)"
                                                    }
                                                },
                                                "id": 379,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "1706:17:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                    "typeString": "struct strings.slice memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                    "typeString": "struct strings.slice memory"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 375,
                                                "name": "sliced",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 367,
                                                "src": "1693:6:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                    "typeString": "struct strings.slice memory"
                                                }
                                            },
                                            "id": 376,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "split",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4153,
                                            "src": "1693:12:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_slice_$2912_memory_ptr_$_t_struct$_slice_$2912_memory_ptr_$returns$_t_struct$_slice_$2912_memory_ptr_$bound_to$_t_struct$_slice_$2912_memory_ptr_$",
                                                "typeString": "function (struct strings.slice memory,struct strings.slice memory) returns (struct strings.slice memory)"
                                            }
                                        },
                                        "id": 380,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1693:31:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                            "typeString": "struct strings.slice memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "1678:46:5"
                                },
                                {
                                    "assignments": [
                                        382
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 382,
                                            "name": "platformId",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 405,
                                            "src": "1734:14:5",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                "typeString": "struct strings.slice memory"
                                            },
                                            "typeName": null,
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 389,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [],
                                                "expression": {
                                                    "argumentTypes": [],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "7c4141437c",
                                                        "id": 385,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "1764:7:5",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_bf4c362cf3fbe87352b5ae2c37344de30ad67f5cff32d32d2d6af008c56d7548",
                                                            "typeString": "literal_string \"|AAC|\""
                                                        },
                                                        "value": "|AAC|"
                                                    },
                                                    "id": 386,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "toSlice",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 2972,
                                                    "src": "1764:15:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_struct$_slice_$2912_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                        "typeString": "function (string memory) returns (struct strings.slice memory)"
                                                    }
                                                },
                                                "id": 387,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "1764:17:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                    "typeString": "struct strings.slice memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                    "typeString": "struct strings.slice memory"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 383,
                                                "name": "sliced",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 367,
                                                "src": "1751:6:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                    "typeString": "struct strings.slice memory"
                                                }
                                            },
                                            "id": 384,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "split",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4153,
                                            "src": "1751:12:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_slice_$2912_memory_ptr_$_t_struct$_slice_$2912_memory_ptr_$returns$_t_struct$_slice_$2912_memory_ptr_$bound_to$_t_struct$_slice_$2912_memory_ptr_$",
                                                "typeString": "function (struct strings.slice memory,struct strings.slice memory) returns (struct strings.slice memory)"
                                            }
                                        },
                                        "id": 388,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1751:31:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                            "typeString": "struct strings.slice memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "1734:48:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [],
                                                        "expression": {
                                                            "argumentTypes": [],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 392,
                                                                "name": "platform",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 374,
                                                                "src": "1810:8:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                                    "typeString": "struct strings.slice memory"
                                                                }
                                                            },
                                                            "id": 393,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "toBytes32",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 4753,
                                                            "src": "1810:18:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_slice_$2912_memory_ptr_$returns$_t_bytes32_$bound_to$_t_struct$_slice_$2912_memory_ptr_$",
                                                                "typeString": "function (struct strings.slice memory) returns (bytes32)"
                                                            }
                                                        },
                                                        "id": 394,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "1810:20:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [],
                                                        "expression": {
                                                            "argumentTypes": [],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 395,
                                                                "name": "platformId",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 382,
                                                                "src": "1832:10:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                                    "typeString": "struct strings.slice memory"
                                                                }
                                                            },
                                                            "id": 396,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "toString",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 3149,
                                                            "src": "1832:19:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_slice_$2912_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$2912_memory_ptr_$",
                                                                "typeString": "function (struct strings.slice memory) returns (string memory)"
                                                            }
                                                        },
                                                        "id": 397,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "1832:21:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 398,
                                                        "name": "_token",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 362,
                                                        "src": "1855:6:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 399,
                                                        "name": "_amount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 360,
                                                        "src": "1863:7:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 400,
                                                        "name": "_from",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 358,
                                                        "src": "1872:5:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 391,
                                                    "name": "doFunding",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 505,
                                                    "src": "1800:9:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_address_$_t_uint256_$_t_address_$returns$_t_bool_$",
                                                        "typeString": "function (bytes32,string memory,address,uint256,address) returns (bool)"
                                                    }
                                                },
                                                "id": 401,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "1800:78:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 390,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4992,
                                            "src": "1792:7:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 402,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1792:87:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 403,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1792:87:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 405,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [],
                        "name": "receiveApproval",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 365,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 358,
                                    "name": "_from",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 405,
                                    "src": "1557:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 357,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1557:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 360,
                                    "name": "_amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 405,
                                    "src": "1572:12:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 359,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1572:4:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 362,
                                    "name": "_token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 405,
                                    "src": "1586:14:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 361,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1586:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 364,
                                    "name": "_data",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 405,
                                    "src": "1602:11:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                    },
                                    "typeName": {
                                        "id": 363,
                                        "name": "bytes",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1602:5:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_storage_ptr",
                                            "typeString": "bytes storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1556:58:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 366,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "1622:0:5"
                        },
                        "scope": 786,
                        "src": "1532:354:5",
                        "stateMutability": "nonpayable",
                        "superFunction": 1721,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 504,
                            "nodeType": "Block",
                            "src": "2031:609:5",
                            "statements": [
                                {
                                    "body": {
                                        "id": 455,
                                        "nodeType": "Block",
                                        "src": "2095:188:5",
                                        "statements": [
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "id": 439,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 432,
                                                                    "name": "preconditions",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 299,
                                                                    "src": "2121:13:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_contract$_Precondition_$1571_$dyn_storage",
                                                                        "typeString": "contract Precondition[] storage ref"
                                                                    }
                                                                },
                                                                "id": 434,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 433,
                                                                    "name": "idx",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 421,
                                                                    "src": "2135:3:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "2121:18:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_Precondition_$1571",
                                                                    "typeString": "contract Precondition"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_Precondition_$1571",
                                                                    "typeString": "contract Precondition"
                                                                }
                                                            ],
                                                            "id": 431,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "2113:7:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": "address"
                                                        },
                                                        "id": 435,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "2113:27:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "!=",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "hexValue": "30",
                                                                "id": 437,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "number",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "2152:1:5",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                    "typeString": "int_const 0"
                                                                },
                                                                "value": "0"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                    "typeString": "int_const 0"
                                                                }
                                                            ],
                                                            "id": 436,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "2144:7:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": "address"
                                                        },
                                                        "id": 438,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "2144:10:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "2113:41:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": null,
                                                "id": 454,
                                                "nodeType": "IfStatement",
                                                "src": "2109:164:5",
                                                "trueBody": {
                                                    "id": 453,
                                                    "nodeType": "Block",
                                                    "src": "2156:117:5",
                                                    "statements": [
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 445,
                                                                                "name": "_platform",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 407,
                                                                                "src": "2209:9:5",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 446,
                                                                                "name": "_platformId",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 409,
                                                                                "src": "2220:11:5",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                                    "typeString": "string memory"
                                                                                }
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 447,
                                                                                "name": "_token",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 411,
                                                                                "src": "2233:6:5",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 448,
                                                                                "name": "_value",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 413,
                                                                                "src": "2241:6:5",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 449,
                                                                                "name": "_funder",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 415,
                                                                                "src": "2249:7:5",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                                    "typeString": "string memory"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 441,
                                                                                    "name": "preconditions",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 299,
                                                                                    "src": "2182:13:5",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_array$_t_contract$_Precondition_$1571_$dyn_storage",
                                                                                        "typeString": "contract Precondition[] storage ref"
                                                                                    }
                                                                                },
                                                                                "id": 443,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 442,
                                                                                    "name": "idx",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 421,
                                                                                    "src": "2196:3:5",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "2182:18:5",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_contract$_Precondition_$1571",
                                                                                    "typeString": "contract Precondition"
                                                                                }
                                                                            },
                                                                            "id": 444,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "isValid",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 1566,
                                                                            "src": "2182:26:5",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_string_memory_ptr_$_t_address_$_t_uint256_$_t_address_$returns$_t_bool_$",
                                                                                "typeString": "function (bytes32,string memory,address,uint256,address) view external returns (bool)"
                                                                            }
                                                                        },
                                                                        "id": 450,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "2182:75:5",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        }
                                                                    ],
                                                                    "id": 440,
                                                                    "name": "require",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4992,
                                                                    "src": "2174:7:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                                        "typeString": "function (bool) pure"
                                                                    }
                                                                },
                                                                "id": 451,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "2174:84:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_tuple$__$",
                                                                    "typeString": "tuple()"
                                                                }
                                                            },
                                                            "id": 452,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "2174:84:5"
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 427,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 424,
                                            "name": "idx",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 421,
                                            "src": "2060:3:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 425,
                                                "name": "preconditions",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 299,
                                                "src": "2066:13:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_Precondition_$1571_$dyn_storage",
                                                    "typeString": "contract Precondition[] storage ref"
                                                }
                                            },
                                            "id": 426,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "length",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "2066:20:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "2060:26:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 456,
                                    "initializationExpression": {
                                        "assignments": [
                                            421
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 421,
                                                "name": "idx",
                                                "nodeType": "VariableDeclaration",
                                                "scope": 505,
                                                "src": "2046:8:5",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 420,
                                                    "name": "uint",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "2046:4:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "value": null,
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 423,
                                        "initialValue": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 422,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "2057:1:5",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "2046:12:5"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 429,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "2088:5:5",
                                            "subExpression": {
                                                "argumentTypes": null,
                                                "id": 428,
                                                "name": "idx",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 421,
                                                "src": "2088:3:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 430,
                                        "nodeType": "ExpressionStatement",
                                        "src": "2088:5:5"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "2041:242:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 460,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 458,
                                                    "name": "_value",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 413,
                                                    "src": "2300:6:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "30",
                                                    "id": 459,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "2309:1:5",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "src": "2300:10:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 457,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4992,
                                            "src": "2292:7:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 461,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2292:19:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 462,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2292:19:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 468,
                                                        "name": "_funder",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 415,
                                                        "src": "2356:7:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 470,
                                                                "name": "this",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5026,
                                                                "src": "2373:4:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_FundRequestContract_$786",
                                                                    "typeString": "contract FundRequestContract"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_FundRequestContract_$786",
                                                                    "typeString": "contract FundRequestContract"
                                                                }
                                                            ],
                                                            "id": 469,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "2365:7:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": "address"
                                                        },
                                                        "id": 471,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "2365:13:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 472,
                                                        "name": "_value",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 413,
                                                        "src": "2380:6:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 465,
                                                                "name": "_token",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 411,
                                                                "src": "2335:6:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 464,
                                                            "name": "ERC20",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1791,
                                                            "src": "2329:5:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_ERC20_$1791_$",
                                                                "typeString": "type(contract ERC20)"
                                                            }
                                                        },
                                                        "id": 466,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "2329:13:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_ERC20_$1791",
                                                            "typeString": "contract ERC20"
                                                        }
                                                    },
                                                    "id": 467,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "transferFrom",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 1765,
                                                    "src": "2329:26:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                        "typeString": "function (address,address,uint256) external returns (bool)"
                                                    }
                                                },
                                                "id": 473,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "2329:58:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 463,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4992,
                                            "src": "2321:7:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 474,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2321:67:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 475,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2321:67:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 479,
                                                "name": "_funder",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 415,
                                                "src": "2427:7:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 480,
                                                "name": "_platform",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 407,
                                                "src": "2436:9:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 481,
                                                "name": "_platformId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 409,
                                                "src": "2447:11:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 476,
                                                "name": "fundRepository",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 292,
                                                "src": "2398:14:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_FundRepository_$1505",
                                                    "typeString": "contract FundRepository"
                                                }
                                            },
                                            "id": 478,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "updateFunders",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 1105,
                                            "src": "2398:28:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (address,bytes32,string memory) external"
                                            }
                                        },
                                        "id": 482,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2398:61:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 483,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2398:61:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 487,
                                                "name": "_funder",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 415,
                                                "src": "2499:7:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 488,
                                                "name": "_platform",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 407,
                                                "src": "2508:9:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 489,
                                                "name": "_platformId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 409,
                                                "src": "2519:11:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 490,
                                                "name": "_token",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 411,
                                                "src": "2532:6:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 491,
                                                "name": "_value",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 413,
                                                "src": "2540:6:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 484,
                                                "name": "fundRepository",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 292,
                                                "src": "2469:14:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_FundRepository_$1505",
                                                    "typeString": "contract FundRepository"
                                                }
                                            },
                                            "id": 486,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "updateBalances",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 1273,
                                            "src": "2469:29:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_string_memory_ptr_$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,bytes32,string memory,address,uint256) external"
                                            }
                                        },
                                        "id": 492,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2469:78:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 493,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2469:78:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 495,
                                                "name": "_funder",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 415,
                                                "src": "2564:7:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 496,
                                                "name": "_platform",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 407,
                                                "src": "2573:9:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 497,
                                                "name": "_platformId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 409,
                                                "src": "2584:11:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 498,
                                                "name": "_token",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 411,
                                                "src": "2597:6:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 499,
                                                "name": "_value",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 413,
                                                "src": "2605:6:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 494,
                                            "name": "Funded",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 276,
                                            "src": "2557:6:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_string_memory_ptr_$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,bytes32,string memory,address,uint256)"
                                            }
                                        },
                                        "id": 500,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2557:55:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 501,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2557:55:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 502,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2629:4:5",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "true"
                                    },
                                    "functionReturnParameters": 419,
                                    "id": 503,
                                    "nodeType": "Return",
                                    "src": "2622:11:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 505,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [],
                        "name": "doFunding",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 416,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 407,
                                    "name": "_platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 505,
                                    "src": "1911:17:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 406,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1911:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 409,
                                    "name": "_platformId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 505,
                                    "src": "1930:18:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 408,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1930:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 411,
                                    "name": "_token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 505,
                                    "src": "1950:14:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 410,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1950:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 413,
                                    "name": "_value",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 505,
                                    "src": "1966:14:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 412,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1966:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 415,
                                    "name": "_funder",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 505,
                                    "src": "1982:15:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 414,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1982:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1910:88:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 419,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 418,
                                    "name": "success",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 505,
                                    "src": "2017:12:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 417,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2017:4:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2016:14:5"
                        },
                        "scope": 786,
                        "src": "1892:748:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 615,
                            "nodeType": "Block",
                            "src": "2789:781:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 526,
                                                        "name": "platform",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 507,
                                                        "src": "2818:8:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 527,
                                                        "name": "platformId",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 509,
                                                        "src": "2828:10:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 528,
                                                        "name": "solver",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 511,
                                                        "src": "2840:6:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 529,
                                                        "name": "solverAddress",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 513,
                                                        "src": "2848:13:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 530,
                                                        "name": "r",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 515,
                                                        "src": "2863:1:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 531,
                                                        "name": "s",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 517,
                                                        "src": "2866:1:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 532,
                                                        "name": "v",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 519,
                                                        "src": "2869:1:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint8",
                                                            "typeString": "uint8"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint8",
                                                            "typeString": "uint8"
                                                        }
                                                    ],
                                                    "id": 525,
                                                    "name": "validClaim",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 659,
                                                    "src": "2807:10:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint8_$returns$_t_bool_$",
                                                        "typeString": "function (bytes32,string memory,string memory,address,bytes32,bytes32,uint8) view returns (bool)"
                                                    }
                                                },
                                                "id": 533,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "2807:64:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 524,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4992,
                                            "src": "2799:7:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 534,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2799:73:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 535,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2799:73:5"
                                },
                                {
                                    "assignments": [
                                        537
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 537,
                                            "name": "tokenCount",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 616,
                                            "src": "2882:18:5",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 536,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "2882:7:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 543,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 540,
                                                "name": "platform",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 507,
                                                "src": "2938:8:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 541,
                                                "name": "platformId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 509,
                                                "src": "2948:10:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 538,
                                                "name": "fundRepository",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 292,
                                                "src": "2903:14:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_FundRepository_$1505",
                                                    "typeString": "contract FundRepository"
                                                }
                                            },
                                            "id": 539,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getFundedTokenCount",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 1397,
                                            "src": "2903:34:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_string_memory_ptr_$returns$_t_uint256_$",
                                                "typeString": "function (bytes32,string memory) view external returns (uint256)"
                                            }
                                        },
                                        "id": 542,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2903:56:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "2882:77:5"
                                },
                                {
                                    "body": {
                                        "id": 603,
                                        "nodeType": "Block",
                                        "src": "3007:463:5",
                                        "statements": [
                                            {
                                                "assignments": [
                                                    555
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 555,
                                                        "name": "token",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 616,
                                                        "src": "3021:13:5",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "typeName": {
                                                            "id": 554,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "3021:7:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 562,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 558,
                                                            "name": "platform",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 507,
                                                            "src": "3075:8:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 559,
                                                            "name": "platformId",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 509,
                                                            "src": "3085:10:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 560,
                                                            "name": "i",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 545,
                                                            "src": "3097:1:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 556,
                                                            "name": "fundRepository",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 292,
                                                            "src": "3037:14:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_FundRepository_$1505",
                                                                "typeString": "contract FundRepository"
                                                            }
                                                        },
                                                        "id": 557,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "getFundedTokensByIndex",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 1418,
                                                        "src": "3037:37:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$",
                                                            "typeString": "function (bytes32,string memory,uint256) view external returns (address)"
                                                        }
                                                    },
                                                    "id": 561,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3037:62:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "3021:78:5"
                                            },
                                            {
                                                "assignments": [
                                                    564
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 564,
                                                        "name": "tokenAmount",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 616,
                                                        "src": "3113:19:5",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "typeName": {
                                                            "id": 563,
                                                            "name": "uint256",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "3113:7:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 571,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 567,
                                                            "name": "platform",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 507,
                                                            "src": "3161:8:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 568,
                                                            "name": "platformId",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 509,
                                                            "src": "3171:10:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 569,
                                                            "name": "token",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 555,
                                                            "src": "3183:5:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 565,
                                                            "name": "fundRepository",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 292,
                                                            "src": "3135:14:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_FundRepository_$1505",
                                                                "typeString": "contract FundRepository"
                                                            }
                                                        },
                                                        "id": 566,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "claimToken",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 1322,
                                                        "src": "3135:25:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_address_$returns$_t_uint256_$",
                                                            "typeString": "function (bytes32,string memory,address) external returns (uint256)"
                                                        }
                                                    },
                                                    "id": 570,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3135:54:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "3113:76:5"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 577,
                                                                    "name": "solverAddress",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 513,
                                                                    "src": "3233:13:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 578,
                                                                    "name": "tokenAmount",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 564,
                                                                    "src": "3248:11:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 574,
                                                                            "name": "token",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 555,
                                                                            "src": "3217:5:5",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        ],
                                                                        "id": 573,
                                                                        "name": "ERC20",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 1791,
                                                                        "src": "3211:5:5",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_ERC20_$1791_$",
                                                                            "typeString": "type(contract ERC20)"
                                                                        }
                                                                    },
                                                                    "id": 575,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "3211:12:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_ERC20_$1791",
                                                                        "typeString": "contract ERC20"
                                                                    }
                                                                },
                                                                "id": 576,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "transfer",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 1745,
                                                                "src": "3211:21:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                    "typeString": "function (address,uint256) external returns (bool)"
                                                                }
                                                            },
                                                            "id": 579,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "3211:49:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        ],
                                                        "id": 572,
                                                        "name": "require",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4992,
                                                        "src": "3203:7:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                            "typeString": "function (bool) pure"
                                                        }
                                                    },
                                                    "id": 580,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3203:58:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 581,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3203:58:5"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 585,
                                                                    "name": "solverAddress",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 513,
                                                                    "src": "3308:13:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 586,
                                                                    "name": "platform",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 507,
                                                                    "src": "3323:8:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 587,
                                                                    "name": "platformId",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 509,
                                                                    "src": "3333:10:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_string_memory_ptr",
                                                                        "typeString": "string memory"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 588,
                                                                    "name": "solver",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 511,
                                                                    "src": "3345:6:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_string_memory_ptr",
                                                                        "typeString": "string memory"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 589,
                                                                    "name": "token",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 555,
                                                                    "src": "3353:5:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 590,
                                                                    "name": "tokenAmount",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 564,
                                                                    "src": "3360:11:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_string_memory_ptr",
                                                                        "typeString": "string memory"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_string_memory_ptr",
                                                                        "typeString": "string memory"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 583,
                                                                    "name": "claimRepository",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 294,
                                                                    "src": "3283:15:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_ClaimRepository_$968",
                                                                        "typeString": "contract ClaimRepository"
                                                                    }
                                                                },
                                                                "id": 584,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "addClaim",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 947,
                                                                "src": "3283:24:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                    "typeString": "function (address,bytes32,string memory,string memory,address,uint256) external returns (bool)"
                                                                }
                                                            },
                                                            "id": 591,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "3283:89:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        ],
                                                        "id": 582,
                                                        "name": "require",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4992,
                                                        "src": "3275:7:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                            "typeString": "function (bool) pure"
                                                        }
                                                    },
                                                    "id": 592,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3275:98:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 593,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3275:98:5"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 595,
                                                            "name": "solverAddress",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 513,
                                                            "src": "3395:13:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 596,
                                                            "name": "platform",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 507,
                                                            "src": "3410:8:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 597,
                                                            "name": "platformId",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 509,
                                                            "src": "3420:10:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 598,
                                                            "name": "solver",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 511,
                                                            "src": "3432:6:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 599,
                                                            "name": "token",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 555,
                                                            "src": "3440:5:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 600,
                                                            "name": "tokenAmount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 564,
                                                            "src": "3447:11:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "id": 594,
                                                        "name": "Claimed",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 290,
                                                        "src": "3387:7:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$returns$__$",
                                                            "typeString": "function (address,bytes32,string memory,string memory,address,uint256)"
                                                        }
                                                    },
                                                    "id": 601,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3387:72:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 602,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3387:72:5"
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 550,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 548,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 545,
                                            "src": "2986:1:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "id": 549,
                                            "name": "tokenCount",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 537,
                                            "src": "2990:10:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "2986:14:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 604,
                                    "initializationExpression": {
                                        "assignments": [
                                            545
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 545,
                                                "name": "i",
                                                "nodeType": "VariableDeclaration",
                                                "scope": 616,
                                                "src": "2974:6:5",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 544,
                                                    "name": "uint",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "2974:4:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "value": null,
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 547,
                                        "initialValue": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 546,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "2983:1:5",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "2974:10:5"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 552,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "3002:3:5",
                                            "subExpression": {
                                                "argumentTypes": null,
                                                "id": 551,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 545,
                                                "src": "3002:1:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 553,
                                        "nodeType": "ExpressionStatement",
                                        "src": "3002:3:5"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "2969:501:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 608,
                                                        "name": "platform",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 507,
                                                        "src": "3520:8:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 609,
                                                        "name": "platformId",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 509,
                                                        "src": "3530:10:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 606,
                                                        "name": "fundRepository",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 292,
                                                        "src": "3487:14:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_FundRepository_$1505",
                                                            "typeString": "contract FundRepository"
                                                        }
                                                    },
                                                    "id": 607,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "finishResolveFund",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 1344,
                                                    "src": "3487:32:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bool_$",
                                                        "typeString": "function (bytes32,string memory) external returns (bool)"
                                                    }
                                                },
                                                "id": 610,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "3487:54:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 605,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4992,
                                            "src": "3479:7:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 611,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3479:63:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 612,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3479:63:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 613,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3559:4:5",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "true"
                                    },
                                    "functionReturnParameters": 523,
                                    "id": 614,
                                    "nodeType": "Return",
                                    "src": "3552:11:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 616,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [],
                        "name": "claim",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 520,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 507,
                                    "name": "platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 616,
                                    "src": "2661:16:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 506,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2661:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 509,
                                    "name": "platformId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 616,
                                    "src": "2679:17:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 508,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2679:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 511,
                                    "name": "solver",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 616,
                                    "src": "2698:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 510,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2698:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 513,
                                    "name": "solverAddress",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 616,
                                    "src": "2713:21:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 512,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2713:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 515,
                                    "name": "r",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 616,
                                    "src": "2736:9:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 514,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2736:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 517,
                                    "name": "s",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 616,
                                    "src": "2747:9:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 516,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2747:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 519,
                                    "name": "v",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 616,
                                    "src": "2758:7:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                    },
                                    "typeName": {
                                        "id": 518,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2758:5:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2660:106:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 523,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 522,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 616,
                                    "src": "2783:4:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 521,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2783:4:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2782:6:5"
                        },
                        "scope": 786,
                        "src": "2646:924:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 658,
                            "nodeType": "Block",
                            "src": "3731:202:5",
                            "statements": [
                                {
                                    "assignments": [
                                        635
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 635,
                                            "name": "h",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 659,
                                            "src": "3741:5:5",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "typeName": null,
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 644,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 638,
                                                        "name": "platform",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 618,
                                                        "src": "3774:8:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 639,
                                                        "name": "platformId",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 620,
                                                        "src": "3784:10:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 640,
                                                        "name": "solver",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 622,
                                                        "src": "3796:6:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 641,
                                                        "name": "solverAddress",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 624,
                                                        "src": "3804:13:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 637,
                                                    "name": "createClaimMsg",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 696,
                                                    "src": "3759:14:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$returns$_t_string_memory_ptr_$",
                                                        "typeString": "function (bytes32,string memory,string memory,address) pure returns (string memory)"
                                                    }
                                                },
                                                "id": 642,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "3759:59:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            ],
                                            "id": 636,
                                            "name": "keccak256",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4983,
                                            "src": "3749:9:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                                                "typeString": "function () pure returns (bytes32)"
                                            }
                                        },
                                        "id": 643,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3749:70:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "3741:78:5"
                                },
                                {
                                    "assignments": [
                                        646
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 646,
                                            "name": "signerAddress",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 659,
                                            "src": "3829:21:5",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 645,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "3829:7:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 653,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 648,
                                                "name": "h",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 635,
                                                "src": "3863:1:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 649,
                                                "name": "v",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 630,
                                                "src": "3866:1:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint8",
                                                    "typeString": "uint8"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 650,
                                                "name": "r",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 626,
                                                "src": "3869:1:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 651,
                                                "name": "s",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 628,
                                                "src": "3872:1:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint8",
                                                    "typeString": "uint8"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            ],
                                            "id": 647,
                                            "name": "ecrecover",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4981,
                                            "src": "3853:9:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                                                "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)"
                                            }
                                        },
                                        "id": 652,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3853:21:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "3829:45:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 656,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 654,
                                            "name": "claimSignerAddress",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 296,
                                            "src": "3891:18:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "id": 655,
                                            "name": "signerAddress",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 646,
                                            "src": "3913:13:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "3891:35:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "functionReturnParameters": 634,
                                    "id": 657,
                                    "nodeType": "Return",
                                    "src": "3884:42:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 659,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": true,
                        "modifiers": [],
                        "name": "validClaim",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 631,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 618,
                                    "name": "platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 659,
                                    "src": "3596:16:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 617,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3596:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 620,
                                    "name": "platformId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 659,
                                    "src": "3614:17:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 619,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3614:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 622,
                                    "name": "solver",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 659,
                                    "src": "3633:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 621,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3633:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 624,
                                    "name": "solverAddress",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 659,
                                    "src": "3648:21:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 623,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3648:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 626,
                                    "name": "r",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 659,
                                    "src": "3671:9:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 625,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3671:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 628,
                                    "name": "s",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 659,
                                    "src": "3682:9:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 627,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3682:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 630,
                                    "name": "v",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 659,
                                    "src": "3693:7:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                    },
                                    "typeName": {
                                        "id": 629,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3693:5:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3595:106:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 634,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 633,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 659,
                                    "src": "3725:4:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 632,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3725:4:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3724:6:5"
                        },
                        "scope": 786,
                        "src": "3576:357:5",
                        "stateMutability": "view",
                        "superFunction": null,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 695,
                            "nodeType": "Block",
                            "src": "4069:231:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 690,
                                                                "name": "solverAddress",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 667,
                                                                "src": "4277:13:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 688,
                                                                "name": "strings",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4976,
                                                                "src": "4253:7:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_strings_$4976_$",
                                                                    "typeString": "type(library strings)"
                                                                }
                                                            },
                                                            "id": 689,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "addressToString",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 4854,
                                                            "src": "4253:23:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$",
                                                                "typeString": "function (address) pure returns (string memory)"
                                                            }
                                                        },
                                                        "id": 691,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "4253:38:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    ],
                                                    "id": 687,
                                                    "name": "prependUnderscore",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 738,
                                                    "src": "4235:17:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
                                                        "typeString": "function (string memory) pure returns (string memory)"
                                                    }
                                                },
                                                "id": 692,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "4235:57:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 683,
                                                                "name": "solver",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 665,
                                                                "src": "4207:6:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            ],
                                                            "id": 682,
                                                            "name": "prependUnderscore",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 738,
                                                            "src": "4189:17:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
                                                                "typeString": "function (string memory) pure returns (string memory)"
                                                            }
                                                        },
                                                        "id": 684,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "4189:25:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 678,
                                                                        "name": "platformId",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 663,
                                                                        "src": "4157:10:5",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_string_memory_ptr",
                                                                            "typeString": "string memory"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_string_memory_ptr",
                                                                            "typeString": "string memory"
                                                                        }
                                                                    ],
                                                                    "id": 677,
                                                                    "name": "prependUnderscore",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 738,
                                                                    "src": "4139:17:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
                                                                        "typeString": "function (string memory) pure returns (string memory)"
                                                                    }
                                                                },
                                                                "id": 679,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "4139:29:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 674,
                                                                        "name": "platform",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 661,
                                                                        "src": "4110:8:5",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "id": 672,
                                                                        "name": "strings",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 4976,
                                                                        "src": "4086:7:5",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_strings_$4976_$",
                                                                            "typeString": "type(library strings)"
                                                                        }
                                                                    },
                                                                    "id": 673,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "bytes32ToString",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 4975,
                                                                    "src": "4086:23:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$",
                                                                        "typeString": "function (bytes32) pure returns (string memory)"
                                                                    }
                                                                },
                                                                "id": 675,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "4086:33:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            },
                                                            "id": 676,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "strConcat",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 4611,
                                                            "src": "4086:52:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                                "typeString": "function (string memory,string memory) pure returns (string memory)"
                                                            }
                                                        },
                                                        "id": 680,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "4086:83:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    },
                                                    "id": 681,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "strConcat",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 4611,
                                                    "src": "4086:102:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                        "typeString": "function (string memory,string memory) pure returns (string memory)"
                                                    }
                                                },
                                                "id": 685,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "4086:129:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            },
                                            "id": 686,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "strConcat",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4611,
                                            "src": "4086:148:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                "typeString": "function (string memory,string memory) pure returns (string memory)"
                                            }
                                        },
                                        "id": 693,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4086:207:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                        }
                                    },
                                    "functionReturnParameters": 671,
                                    "id": 694,
                                    "nodeType": "Return",
                                    "src": "4079:214:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 696,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": true,
                        "modifiers": [],
                        "name": "createClaimMsg",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 668,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 661,
                                    "name": "platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 696,
                                    "src": "3963:16:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 660,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3963:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 663,
                                    "name": "platformId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 696,
                                    "src": "3981:17:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 662,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3981:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 665,
                                    "name": "solver",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 696,
                                    "src": "4000:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 664,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4000:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 667,
                                    "name": "solverAddress",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 696,
                                    "src": "4015:21:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 666,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4015:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3962:75:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 671,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 670,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 696,
                                    "src": "4061:6:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 669,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4061:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4060:8:5"
                        },
                        "scope": 786,
                        "src": "3939:361:5",
                        "stateMutability": "pure",
                        "superFunction": null,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 711,
                            "nodeType": "Block",
                            "src": "4371:64:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 707,
                                                        "name": "_precondition",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 698,
                                                        "src": "4413:13:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 706,
                                                    "name": "Precondition",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1571,
                                                    "src": "4400:12:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Precondition_$1571_$",
                                                        "typeString": "type(contract Precondition)"
                                                    }
                                                },
                                                "id": 708,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "4400:27:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_Precondition_$1571",
                                                    "typeString": "contract Precondition"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_contract$_Precondition_$1571",
                                                    "typeString": "contract Precondition"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 703,
                                                "name": "preconditions",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 299,
                                                "src": "4381:13:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_Precondition_$1571_$dyn_storage",
                                                    "typeString": "contract Precondition[] storage ref"
                                                }
                                            },
                                            "id": 705,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "push",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "4381:18:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_Precondition_$1571_$returns$_t_uint256_$",
                                                "typeString": "function (contract Precondition) returns (uint256)"
                                            }
                                        },
                                        "id": 709,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4381:47:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 710,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4381:47:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 712,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [
                            {
                                "arguments": [],
                                "id": 701,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 700,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 220,
                                    "src": "4361:9:5",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "4361:9:5"
                            }
                        ],
                        "name": "addPrecondition",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 699,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 698,
                                    "name": "_precondition",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 712,
                                    "src": "4331:21:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 697,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4331:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4330:23:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 702,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "4371:0:5"
                        },
                        "scope": 786,
                        "src": "4306:129:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 724,
                            "nodeType": "Block",
                            "src": "4499:45:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 722,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "UnaryOperation",
                                        "operator": "delete",
                                        "prefix": true,
                                        "src": "4509:28:5",
                                        "subExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 719,
                                                "name": "preconditions",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 299,
                                                "src": "4516:13:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_Precondition_$1571_$dyn_storage",
                                                    "typeString": "contract Precondition[] storage ref"
                                                }
                                            },
                                            "id": 721,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 720,
                                                "name": "_index",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 714,
                                                "src": "4530:6:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "4516:21:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_Precondition_$1571",
                                                "typeString": "contract Precondition"
                                            }
                                        },
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 723,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4509:28:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 725,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [
                            {
                                "arguments": [],
                                "id": 717,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 716,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 220,
                                    "src": "4489:9:5",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "4489:9:5"
                            }
                        ],
                        "name": "removePrecondition",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 715,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 714,
                                    "name": "_index",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 725,
                                    "src": "4469:11:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 713,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4469:4:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4468:13:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 718,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "4499:0:5"
                        },
                        "scope": 786,
                        "src": "4441:103:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 737,
                            "nodeType": "Block",
                            "src": "4620:42:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 734,
                                                "name": "str",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 727,
                                                "src": "4651:3:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "hexValue": "5f",
                                                "id": 732,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "4637:3:5",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_cd5edcba1904ce1b09e94c8a2d2a85375599856ca21c793571193054498b51d7",
                                                    "typeString": "literal_string \"_\""
                                                },
                                                "value": "_"
                                            },
                                            "id": 733,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "strConcat",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4611,
                                            "src": "4637:13:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                "typeString": "function (string memory,string memory) pure returns (string memory)"
                                            }
                                        },
                                        "id": 735,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4637:18:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                        }
                                    },
                                    "functionReturnParameters": 731,
                                    "id": 736,
                                    "nodeType": "Return",
                                    "src": "4630:25:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 738,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": true,
                        "modifiers": [],
                        "name": "prependUnderscore",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 728,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 727,
                                    "name": "str",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 738,
                                    "src": "4577:10:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 726,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4577:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4576:12:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 731,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 730,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 738,
                                    "src": "4612:6:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 729,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4612:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4611:8:5"
                        },
                        "scope": 786,
                        "src": "4550:112:5",
                        "stateMutability": "pure",
                        "superFunction": null,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 751,
                            "nodeType": "Block",
                            "src": "4740:68:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 749,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 745,
                                            "name": "fundRepository",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 292,
                                            "src": "4750:14:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_FundRepository_$1505",
                                                "typeString": "contract FundRepository"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 747,
                                                    "name": "_repositoryAddress",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 740,
                                                    "src": "4782:18:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "id": 746,
                                                "name": "FundRepository",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1505,
                                                "src": "4767:14:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_FundRepository_$1505_$",
                                                    "typeString": "type(contract FundRepository)"
                                                }
                                            },
                                            "id": 748,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "4767:34:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_FundRepository_$1505",
                                                "typeString": "contract FundRepository"
                                            }
                                        },
                                        "src": "4750:51:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_FundRepository_$1505",
                                            "typeString": "contract FundRepository"
                                        }
                                    },
                                    "id": 750,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4750:51:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 752,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [
                            {
                                "arguments": [],
                                "id": 743,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 742,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 220,
                                    "src": "4730:9:5",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "4730:9:5"
                            }
                        ],
                        "name": "setFundRepository",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 741,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 740,
                                    "name": "_repositoryAddress",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 752,
                                    "src": "4695:26:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 739,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4695:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4694:28:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 744,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "4740:0:5"
                        },
                        "scope": 786,
                        "src": "4668:140:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 765,
                            "nodeType": "Block",
                            "src": "4885:68:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 763,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 759,
                                            "name": "claimRepository",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 294,
                                            "src": "4895:15:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_ClaimRepository_$968",
                                                "typeString": "contract ClaimRepository"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 761,
                                                    "name": "_claimRepository",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 754,
                                                    "src": "4929:16:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "id": 760,
                                                "name": "ClaimRepository",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 968,
                                                "src": "4913:15:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_ClaimRepository_$968_$",
                                                    "typeString": "type(contract ClaimRepository)"
                                                }
                                            },
                                            "id": 762,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "4913:33:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_ClaimRepository_$968",
                                                "typeString": "contract ClaimRepository"
                                            }
                                        },
                                        "src": "4895:51:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_ClaimRepository_$968",
                                            "typeString": "contract ClaimRepository"
                                        }
                                    },
                                    "id": 764,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4895:51:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 766,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [
                            {
                                "arguments": [],
                                "id": 757,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 756,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 220,
                                    "src": "4875:9:5",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "4875:9:5"
                            }
                        ],
                        "name": "setClaimRepository",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 755,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 754,
                                    "name": "_claimRepository",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 766,
                                    "src": "4842:24:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 753,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4842:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4841:26:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 758,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "4885:0:5"
                        },
                        "scope": 786,
                        "src": "4814:139:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 780,
                            "nodeType": "Block",
                            "src": "5072:57:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 778,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 776,
                                            "name": "claimSignerAddress",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 296,
                                            "src": "5082:18:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 777,
                                            "name": "_claimSignerAddress",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 768,
                                            "src": "5103:19:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "5082:40:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 779,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5082:40:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 781,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "id": 771,
                                        "name": "_claimSignerAddress",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 768,
                                        "src": "5034:19:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    }
                                ],
                                "id": 772,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 770,
                                    "name": "addressNotNull",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 313,
                                    "src": "5019:14:5",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "5019:35:5"
                            },
                            {
                                "arguments": [],
                                "id": 774,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 773,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 220,
                                    "src": "5062:9:5",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "5062:9:5"
                            }
                        ],
                        "name": "setClaimSignerAddress",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 769,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 768,
                                    "name": "_claimSignerAddress",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 781,
                                    "src": "4990:27:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 767,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4990:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4989:29:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 775,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "5072:0:5"
                        },
                        "scope": 786,
                        "src": "4959:170:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 784,
                            "nodeType": "Block",
                            "src": "5153:50:5",
                            "statements": []
                        },
                        "documentation": null,
                        "id": 785,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [],
                        "name": "",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 782,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "5143:2:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 783,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "5153:0:5"
                        },
                        "scope": 786,
                        "src": "5135:68:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    }
                ],
                "scope": 787,
                "src": "435:4770:5"
            }
        ],
        "src": "0:5205:5"
    },
    "legacyAST": {
        "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/platform/FundRequestContract.sol",
        "exportedSymbols": {
            "FundRequestContract": [
                786
            ]
        },
        "id": 787,
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 246,
                "literals": [
                    "solidity",
                    "0.4",
                    ".21"
                ],
                "nodeType": "PragmaDirective",
                "src": "0:23:5"
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/math/SafeMath.sol",
                "file": "../math/SafeMath.sol",
                "id": 247,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 208,
                "src": "26:30:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/token/FundRequestToken.sol",
                "file": "../token/FundRequestToken.sol",
                "id": 248,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 1861,
                "src": "57:39:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/token/ERC20.sol",
                "file": "../token/ERC20.sol",
                "id": 249,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 1792,
                "src": "97:28:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/platform/repository/FundRepository.sol",
                "file": "./repository/FundRepository.sol",
                "id": 250,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 1506,
                "src": "126:41:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/platform/repository/ClaimRepository.sol",
                "file": "./repository/ClaimRepository.sol",
                "id": 251,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 969,
                "src": "168:42:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/ownership/Owned.sol",
                "file": "../ownership/Owned.sol",
                "id": 252,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 245,
                "src": "211:32:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/token/ApproveAndCallFallback.sol",
                "file": "../token/ApproveAndCallFallback.sol",
                "id": 253,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 1723,
                "src": "244:45:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/utils/strings.sol",
                "file": "../utils/strings.sol",
                "id": 254,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 4977,
                "src": "290:30:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/QuintenDes/FundRequest/contracts/contracts/platform/validation/Precondition.sol",
                "file": "./validation/Precondition.sol",
                "id": 255,
                "nodeType": "ImportDirective",
                "scope": 787,
                "sourceUnit": 1572,
                "src": "321:39:5",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "baseContracts": [
                    {
                        "arguments": [],
                        "baseName": {
                            "contractScope": null,
                            "id": 256,
                            "name": "Owned",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 244,
                            "src": "467:5:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Owned_$244",
                                "typeString": "contract Owned"
                            }
                        },
                        "id": 257,
                        "nodeType": "InheritanceSpecifier",
                        "src": "467:5:5"
                    },
                    {
                        "arguments": [],
                        "baseName": {
                            "contractScope": null,
                            "id": 258,
                            "name": "ApproveAndCallFallBack",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1722,
                            "src": "474:22:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$1722",
                                "typeString": "contract ApproveAndCallFallBack"
                            }
                        },
                        "id": 259,
                        "nodeType": "InheritanceSpecifier",
                        "src": "474:22:5"
                    }
                ],
                "contractDependencies": [
                    244,
                    1722
                ],
                "contractKind": "contract",
                "documentation": null,
                "fullyImplemented": true,
                "id": 786,
                "linearizedBaseContracts": [
                    786,
                    1722,
                    244
                ],
                "name": "FundRequestContract",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "id": 262,
                        "libraryName": {
                            "contractScope": null,
                            "id": 260,
                            "name": "SafeMath",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 207,
                            "src": "510:8:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_SafeMath_$207",
                                "typeString": "library SafeMath"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "504:27:5",
                        "typeName": {
                            "id": 261,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "523:7:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        }
                    },
                    {
                        "id": 264,
                        "libraryName": {
                            "contractScope": null,
                            "id": 263,
                            "name": "strings",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 4976,
                            "src": "542:7:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_strings_$4976",
                                "typeString": "library strings"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "536:20:5",
                        "typeName": null
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 276,
                        "name": "Funded",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 275,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 266,
                                    "indexed": true,
                                    "name": "from",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 276,
                                    "src": "575:20:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 265,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "575:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 268,
                                    "indexed": false,
                                    "name": "platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 276,
                                    "src": "597:16:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 267,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "597:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 270,
                                    "indexed": false,
                                    "name": "platformId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 276,
                                    "src": "615:17:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 269,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "615:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 272,
                                    "indexed": false,
                                    "name": "token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 276,
                                    "src": "634:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 271,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "634:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 274,
                                    "indexed": false,
                                    "name": "value",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 276,
                                    "src": "649:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 273,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "649:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "574:89:5"
                        },
                        "src": "562:102:5"
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 290,
                        "name": "Claimed",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 289,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 278,
                                    "indexed": true,
                                    "name": "solverAddress",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 290,
                                    "src": "684:29:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 277,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "684:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 280,
                                    "indexed": false,
                                    "name": "platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 290,
                                    "src": "715:16:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 279,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "715:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 282,
                                    "indexed": false,
                                    "name": "platformId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 290,
                                    "src": "733:17:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 281,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "733:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 284,
                                    "indexed": false,
                                    "name": "solver",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 290,
                                    "src": "752:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 283,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "752:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 286,
                                    "indexed": false,
                                    "name": "token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 290,
                                    "src": "767:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 285,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "767:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 288,
                                    "indexed": false,
                                    "name": "value",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 290,
                                    "src": "782:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 287,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "782:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "683:113:5"
                        },
                        "src": "670:127:5"
                    },
                    {
                        "constant": false,
                        "id": 292,
                        "name": "fundRepository",
                        "nodeType": "VariableDeclaration",
                        "scope": 786,
                        "src": "822:36:5",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_contract$_FundRepository_$1505",
                            "typeString": "contract FundRepository"
                        },
                        "typeName": {
                            "contractScope": null,
                            "id": 291,
                            "name": "FundRepository",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1505,
                            "src": "822:14:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FundRepository_$1505",
                                "typeString": "contract FundRepository"
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 294,
                        "name": "claimRepository",
                        "nodeType": "VariableDeclaration",
                        "scope": 786,
                        "src": "865:38:5",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ClaimRepository_$968",
                            "typeString": "contract ClaimRepository"
                        },
                        "typeName": {
                            "contractScope": null,
                            "id": 293,
                            "name": "ClaimRepository",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 968,
                            "src": "865:15:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ClaimRepository_$968",
                                "typeString": "contract ClaimRepository"
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 296,
                        "name": "claimSignerAddress",
                        "nodeType": "VariableDeclaration",
                        "scope": 786,
                        "src": "910:33:5",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                        },
                        "typeName": {
                            "id": 295,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "910:7:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 299,
                        "name": "preconditions",
                        "nodeType": "VariableDeclaration",
                        "scope": 786,
                        "src": "950:35:5",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_Precondition_$1571_$dyn_storage",
                            "typeString": "contract Precondition[] storage ref"
                        },
                        "typeName": {
                            "baseType": {
                                "contractScope": null,
                                "id": 297,
                                "name": "Precondition",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 1571,
                                "src": "950:12:5",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Precondition_$1571",
                                    "typeString": "contract Precondition"
                                }
                            },
                            "id": 298,
                            "length": null,
                            "nodeType": "ArrayTypeName",
                            "src": "950:14:5",
                            "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_contract$_Precondition_$1571_$dyn_storage_ptr",
                                "typeString": "contract Precondition[] storage pointer"
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 312,
                            "nodeType": "Block",
                            "src": "1032:57:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 308,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 304,
                                                    "name": "target",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 301,
                                                    "src": "1050:6:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "!=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "hexValue": "30",
                                                            "id": 306,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "number",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "1068:1:5",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            },
                                                            "value": "0"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            }
                                                        ],
                                                        "id": 305,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "nodeType": "ElementaryTypeNameExpression",
                                                        "src": "1060:7:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_address_$",
                                                            "typeString": "type(address)"
                                                        },
                                                        "typeName": "address"
                                                    },
                                                    "id": 307,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "1060:10:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "1050:20:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 303,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4992,
                                            "src": "1042:7:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 309,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1042:29:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 310,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1042:29:5"
                                },
                                {
                                    "id": 311,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "1081:1:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 313,
                        "name": "addressNotNull",
                        "nodeType": "ModifierDefinition",
                        "parameters": {
                            "id": 302,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 301,
                                    "name": "target",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 313,
                                    "src": "1016:14:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 300,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1016:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1015:16:5"
                        },
                        "src": "992:97:5",
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 328,
                            "nodeType": "Block",
                            "src": "1182:97:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 321,
                                                "name": "_fundRepository",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 315,
                                                "src": "1210:15:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 320,
                                            "name": "setFundRepository",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 752,
                                            "src": "1192:17:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                                                "typeString": "function (address)"
                                            }
                                        },
                                        "id": 322,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1192:34:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 323,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1192:34:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 325,
                                                "name": "_claimRepository",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 317,
                                                "src": "1255:16:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 324,
                                            "name": "setClaimRepository",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 766,
                                            "src": "1236:18:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                                                "typeString": "function (address)"
                                            }
                                        },
                                        "id": 326,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1236:36:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 327,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1236:36:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 329,
                        "implemented": true,
                        "isConstructor": true,
                        "isDeclaredConst": false,
                        "modifiers": [],
                        "name": "FundRequestContract",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 318,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 315,
                                    "name": "_fundRepository",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 329,
                                    "src": "1124:23:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 314,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1124:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 317,
                                    "name": "_claimRepository",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 329,
                                    "src": "1149:24:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 316,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1149:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1123:51:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 319,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "1182:0:5"
                        },
                        "scope": 786,
                        "src": "1095:184:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 355,
                            "nodeType": "Block",
                            "src": "1418:108:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 344,
                                                        "name": "_platform",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 331,
                                                        "src": "1446:9:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 345,
                                                        "name": "_platformId",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 333,
                                                        "src": "1457:11:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 346,
                                                        "name": "_token",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 335,
                                                        "src": "1470:6:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 347,
                                                        "name": "_value",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 337,
                                                        "src": "1478:6:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 348,
                                                            "name": "msg",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4989,
                                                            "src": "1486:3:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_magic_message",
                                                                "typeString": "msg"
                                                            }
                                                        },
                                                        "id": 349,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "sender",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "1486:10:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 343,
                                                    "name": "doFunding",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 505,
                                                    "src": "1436:9:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_address_$_t_uint256_$_t_address_$returns$_t_bool_$",
                                                        "typeString": "function (bytes32,string memory,address,uint256,address) returns (bool)"
                                                    }
                                                },
                                                "id": 350,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "1436:61:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 342,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4992,
                                            "src": "1428:7:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 351,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1428:70:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 352,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1428:70:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 353,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1515:4:5",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "true"
                                    },
                                    "functionReturnParameters": 341,
                                    "id": 354,
                                    "nodeType": "Return",
                                    "src": "1508:11:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 356,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [],
                        "name": "fund",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 338,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 331,
                                    "name": "_platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 356,
                                    "src": "1317:17:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 330,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1317:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 333,
                                    "name": "_platformId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 356,
                                    "src": "1336:18:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 332,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1336:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 335,
                                    "name": "_token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 356,
                                    "src": "1356:14:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 334,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1356:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 337,
                                    "name": "_value",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 356,
                                    "src": "1372:14:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 336,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1372:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1316:71:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 341,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 340,
                                    "name": "success",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 356,
                                    "src": "1404:12:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 339,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1404:4:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1403:14:5"
                        },
                        "scope": 786,
                        "src": "1303:223:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 404,
                            "nodeType": "Block",
                            "src": "1622:264:5",
                            "statements": [
                                {
                                    "assignments": [
                                        367
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 367,
                                            "name": "sliced",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 405,
                                            "src": "1632:10:5",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                "typeString": "struct strings.slice memory"
                                            },
                                            "typeName": null,
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 373,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 369,
                                                        "name": "_data",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 364,
                                                        "src": "1652:5:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes memory"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes memory"
                                                        }
                                                    ],
                                                    "id": 368,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "1645:6:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                                                        "typeString": "type(string storage pointer)"
                                                    },
                                                    "typeName": "string"
                                                },
                                                "id": 370,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "1645:13:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory",
                                                    "typeString": "string memory"
                                                }
                                            },
                                            "id": 371,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "toSlice",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2972,
                                            "src": "1645:21:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_struct$_slice_$2912_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                "typeString": "function (string memory) returns (struct strings.slice memory)"
                                            }
                                        },
                                        "id": 372,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1645:23:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                            "typeString": "struct strings.slice memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "1632:36:5"
                                },
                                {
                                    "assignments": [
                                        374
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 374,
                                            "name": "platform",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 405,
                                            "src": "1678:12:5",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                "typeString": "struct strings.slice memory"
                                            },
                                            "typeName": null,
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 381,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [],
                                                "expression": {
                                                    "argumentTypes": [],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "7c4141437c",
                                                        "id": 377,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "1706:7:5",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_bf4c362cf3fbe87352b5ae2c37344de30ad67f5cff32d32d2d6af008c56d7548",
                                                            "typeString": "literal_string \"|AAC|\""
                                                        },
                                                        "value": "|AAC|"
                                                    },
                                                    "id": 378,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "toSlice",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 2972,
                                                    "src": "1706:15:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_struct$_slice_$2912_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                        "typeString": "function (string memory) returns (struct strings.slice memory)"
                                                    }
                                                },
                                                "id": 379,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "1706:17:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                    "typeString": "struct strings.slice memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                    "typeString": "struct strings.slice memory"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 375,
                                                "name": "sliced",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 367,
                                                "src": "1693:6:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                    "typeString": "struct strings.slice memory"
                                                }
                                            },
                                            "id": 376,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "split",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4153,
                                            "src": "1693:12:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_slice_$2912_memory_ptr_$_t_struct$_slice_$2912_memory_ptr_$returns$_t_struct$_slice_$2912_memory_ptr_$bound_to$_t_struct$_slice_$2912_memory_ptr_$",
                                                "typeString": "function (struct strings.slice memory,struct strings.slice memory) returns (struct strings.slice memory)"
                                            }
                                        },
                                        "id": 380,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1693:31:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                            "typeString": "struct strings.slice memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "1678:46:5"
                                },
                                {
                                    "assignments": [
                                        382
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 382,
                                            "name": "platformId",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 405,
                                            "src": "1734:14:5",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                "typeString": "struct strings.slice memory"
                                            },
                                            "typeName": null,
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 389,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [],
                                                "expression": {
                                                    "argumentTypes": [],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "7c4141437c",
                                                        "id": 385,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "1764:7:5",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_bf4c362cf3fbe87352b5ae2c37344de30ad67f5cff32d32d2d6af008c56d7548",
                                                            "typeString": "literal_string \"|AAC|\""
                                                        },
                                                        "value": "|AAC|"
                                                    },
                                                    "id": 386,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "toSlice",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 2972,
                                                    "src": "1764:15:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_struct$_slice_$2912_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                        "typeString": "function (string memory) returns (struct strings.slice memory)"
                                                    }
                                                },
                                                "id": 387,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "1764:17:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                    "typeString": "struct strings.slice memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                    "typeString": "struct strings.slice memory"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 383,
                                                "name": "sliced",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 367,
                                                "src": "1751:6:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                    "typeString": "struct strings.slice memory"
                                                }
                                            },
                                            "id": 384,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "split",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4153,
                                            "src": "1751:12:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_slice_$2912_memory_ptr_$_t_struct$_slice_$2912_memory_ptr_$returns$_t_struct$_slice_$2912_memory_ptr_$bound_to$_t_struct$_slice_$2912_memory_ptr_$",
                                                "typeString": "function (struct strings.slice memory,struct strings.slice memory) returns (struct strings.slice memory)"
                                            }
                                        },
                                        "id": 388,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1751:31:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                            "typeString": "struct strings.slice memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "1734:48:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [],
                                                        "expression": {
                                                            "argumentTypes": [],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 392,
                                                                "name": "platform",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 374,
                                                                "src": "1810:8:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                                    "typeString": "struct strings.slice memory"
                                                                }
                                                            },
                                                            "id": 393,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "toBytes32",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 4753,
                                                            "src": "1810:18:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_slice_$2912_memory_ptr_$returns$_t_bytes32_$bound_to$_t_struct$_slice_$2912_memory_ptr_$",
                                                                "typeString": "function (struct strings.slice memory) returns (bytes32)"
                                                            }
                                                        },
                                                        "id": 394,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "1810:20:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [],
                                                        "expression": {
                                                            "argumentTypes": [],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 395,
                                                                "name": "platformId",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 382,
                                                                "src": "1832:10:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_slice_$2912_memory_ptr",
                                                                    "typeString": "struct strings.slice memory"
                                                                }
                                                            },
                                                            "id": 396,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "toString",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 3149,
                                                            "src": "1832:19:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_slice_$2912_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$2912_memory_ptr_$",
                                                                "typeString": "function (struct strings.slice memory) returns (string memory)"
                                                            }
                                                        },
                                                        "id": 397,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "1832:21:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 398,
                                                        "name": "_token",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 362,
                                                        "src": "1855:6:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 399,
                                                        "name": "_amount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 360,
                                                        "src": "1863:7:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 400,
                                                        "name": "_from",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 358,
                                                        "src": "1872:5:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 391,
                                                    "name": "doFunding",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 505,
                                                    "src": "1800:9:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_address_$_t_uint256_$_t_address_$returns$_t_bool_$",
                                                        "typeString": "function (bytes32,string memory,address,uint256,address) returns (bool)"
                                                    }
                                                },
                                                "id": 401,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "1800:78:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 390,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4992,
                                            "src": "1792:7:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 402,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1792:87:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 403,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1792:87:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 405,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [],
                        "name": "receiveApproval",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 365,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 358,
                                    "name": "_from",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 405,
                                    "src": "1557:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 357,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1557:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 360,
                                    "name": "_amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 405,
                                    "src": "1572:12:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 359,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1572:4:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 362,
                                    "name": "_token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 405,
                                    "src": "1586:14:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 361,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1586:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 364,
                                    "name": "_data",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 405,
                                    "src": "1602:11:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                    },
                                    "typeName": {
                                        "id": 363,
                                        "name": "bytes",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1602:5:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_storage_ptr",
                                            "typeString": "bytes storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1556:58:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 366,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "1622:0:5"
                        },
                        "scope": 786,
                        "src": "1532:354:5",
                        "stateMutability": "nonpayable",
                        "superFunction": 1721,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 504,
                            "nodeType": "Block",
                            "src": "2031:609:5",
                            "statements": [
                                {
                                    "body": {
                                        "id": 455,
                                        "nodeType": "Block",
                                        "src": "2095:188:5",
                                        "statements": [
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "id": 439,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 432,
                                                                    "name": "preconditions",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 299,
                                                                    "src": "2121:13:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_contract$_Precondition_$1571_$dyn_storage",
                                                                        "typeString": "contract Precondition[] storage ref"
                                                                    }
                                                                },
                                                                "id": 434,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 433,
                                                                    "name": "idx",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 421,
                                                                    "src": "2135:3:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "2121:18:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_Precondition_$1571",
                                                                    "typeString": "contract Precondition"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_Precondition_$1571",
                                                                    "typeString": "contract Precondition"
                                                                }
                                                            ],
                                                            "id": 431,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "2113:7:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": "address"
                                                        },
                                                        "id": 435,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "2113:27:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "!=",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "hexValue": "30",
                                                                "id": 437,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "number",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "2152:1:5",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                    "typeString": "int_const 0"
                                                                },
                                                                "value": "0"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                    "typeString": "int_const 0"
                                                                }
                                                            ],
                                                            "id": 436,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "2144:7:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": "address"
                                                        },
                                                        "id": 438,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "2144:10:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "2113:41:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": null,
                                                "id": 454,
                                                "nodeType": "IfStatement",
                                                "src": "2109:164:5",
                                                "trueBody": {
                                                    "id": 453,
                                                    "nodeType": "Block",
                                                    "src": "2156:117:5",
                                                    "statements": [
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 445,
                                                                                "name": "_platform",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 407,
                                                                                "src": "2209:9:5",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 446,
                                                                                "name": "_platformId",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 409,
                                                                                "src": "2220:11:5",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                                    "typeString": "string memory"
                                                                                }
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 447,
                                                                                "name": "_token",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 411,
                                                                                "src": "2233:6:5",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 448,
                                                                                "name": "_value",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 413,
                                                                                "src": "2241:6:5",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 449,
                                                                                "name": "_funder",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 415,
                                                                                "src": "2249:7:5",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                                    "typeString": "string memory"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 441,
                                                                                    "name": "preconditions",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 299,
                                                                                    "src": "2182:13:5",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_array$_t_contract$_Precondition_$1571_$dyn_storage",
                                                                                        "typeString": "contract Precondition[] storage ref"
                                                                                    }
                                                                                },
                                                                                "id": 443,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 442,
                                                                                    "name": "idx",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 421,
                                                                                    "src": "2196:3:5",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "2182:18:5",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_contract$_Precondition_$1571",
                                                                                    "typeString": "contract Precondition"
                                                                                }
                                                                            },
                                                                            "id": 444,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "isValid",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 1566,
                                                                            "src": "2182:26:5",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_string_memory_ptr_$_t_address_$_t_uint256_$_t_address_$returns$_t_bool_$",
                                                                                "typeString": "function (bytes32,string memory,address,uint256,address) view external returns (bool)"
                                                                            }
                                                                        },
                                                                        "id": 450,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "2182:75:5",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        }
                                                                    ],
                                                                    "id": 440,
                                                                    "name": "require",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4992,
                                                                    "src": "2174:7:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                                        "typeString": "function (bool) pure"
                                                                    }
                                                                },
                                                                "id": 451,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "2174:84:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_tuple$__$",
                                                                    "typeString": "tuple()"
                                                                }
                                                            },
                                                            "id": 452,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "2174:84:5"
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 427,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 424,
                                            "name": "idx",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 421,
                                            "src": "2060:3:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 425,
                                                "name": "preconditions",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 299,
                                                "src": "2066:13:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_Precondition_$1571_$dyn_storage",
                                                    "typeString": "contract Precondition[] storage ref"
                                                }
                                            },
                                            "id": 426,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "length",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "2066:20:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "2060:26:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 456,
                                    "initializationExpression": {
                                        "assignments": [
                                            421
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 421,
                                                "name": "idx",
                                                "nodeType": "VariableDeclaration",
                                                "scope": 505,
                                                "src": "2046:8:5",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 420,
                                                    "name": "uint",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "2046:4:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "value": null,
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 423,
                                        "initialValue": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 422,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "2057:1:5",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "2046:12:5"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 429,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "2088:5:5",
                                            "subExpression": {
                                                "argumentTypes": null,
                                                "id": 428,
                                                "name": "idx",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 421,
                                                "src": "2088:3:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 430,
                                        "nodeType": "ExpressionStatement",
                                        "src": "2088:5:5"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "2041:242:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 460,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 458,
                                                    "name": "_value",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 413,
                                                    "src": "2300:6:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "30",
                                                    "id": 459,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "2309:1:5",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "src": "2300:10:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 457,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4992,
                                            "src": "2292:7:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 461,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2292:19:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 462,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2292:19:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 468,
                                                        "name": "_funder",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 415,
                                                        "src": "2356:7:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 470,
                                                                "name": "this",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5026,
                                                                "src": "2373:4:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_FundRequestContract_$786",
                                                                    "typeString": "contract FundRequestContract"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_FundRequestContract_$786",
                                                                    "typeString": "contract FundRequestContract"
                                                                }
                                                            ],
                                                            "id": 469,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "2365:7:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": "address"
                                                        },
                                                        "id": 471,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "2365:13:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 472,
                                                        "name": "_value",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 413,
                                                        "src": "2380:6:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 465,
                                                                "name": "_token",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 411,
                                                                "src": "2335:6:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 464,
                                                            "name": "ERC20",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1791,
                                                            "src": "2329:5:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_ERC20_$1791_$",
                                                                "typeString": "type(contract ERC20)"
                                                            }
                                                        },
                                                        "id": 466,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "2329:13:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_ERC20_$1791",
                                                            "typeString": "contract ERC20"
                                                        }
                                                    },
                                                    "id": 467,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "transferFrom",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 1765,
                                                    "src": "2329:26:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                        "typeString": "function (address,address,uint256) external returns (bool)"
                                                    }
                                                },
                                                "id": 473,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "2329:58:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 463,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4992,
                                            "src": "2321:7:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 474,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2321:67:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 475,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2321:67:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 479,
                                                "name": "_funder",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 415,
                                                "src": "2427:7:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 480,
                                                "name": "_platform",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 407,
                                                "src": "2436:9:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 481,
                                                "name": "_platformId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 409,
                                                "src": "2447:11:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 476,
                                                "name": "fundRepository",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 292,
                                                "src": "2398:14:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_FundRepository_$1505",
                                                    "typeString": "contract FundRepository"
                                                }
                                            },
                                            "id": 478,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "updateFunders",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 1105,
                                            "src": "2398:28:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (address,bytes32,string memory) external"
                                            }
                                        },
                                        "id": 482,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2398:61:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 483,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2398:61:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 487,
                                                "name": "_funder",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 415,
                                                "src": "2499:7:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 488,
                                                "name": "_platform",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 407,
                                                "src": "2508:9:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 489,
                                                "name": "_platformId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 409,
                                                "src": "2519:11:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 490,
                                                "name": "_token",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 411,
                                                "src": "2532:6:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 491,
                                                "name": "_value",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 413,
                                                "src": "2540:6:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 484,
                                                "name": "fundRepository",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 292,
                                                "src": "2469:14:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_FundRepository_$1505",
                                                    "typeString": "contract FundRepository"
                                                }
                                            },
                                            "id": 486,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "updateBalances",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 1273,
                                            "src": "2469:29:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_string_memory_ptr_$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,bytes32,string memory,address,uint256) external"
                                            }
                                        },
                                        "id": 492,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2469:78:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 493,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2469:78:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 495,
                                                "name": "_funder",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 415,
                                                "src": "2564:7:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 496,
                                                "name": "_platform",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 407,
                                                "src": "2573:9:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 497,
                                                "name": "_platformId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 409,
                                                "src": "2584:11:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 498,
                                                "name": "_token",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 411,
                                                "src": "2597:6:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 499,
                                                "name": "_value",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 413,
                                                "src": "2605:6:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 494,
                                            "name": "Funded",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 276,
                                            "src": "2557:6:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_string_memory_ptr_$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,bytes32,string memory,address,uint256)"
                                            }
                                        },
                                        "id": 500,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2557:55:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 501,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2557:55:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 502,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2629:4:5",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "true"
                                    },
                                    "functionReturnParameters": 419,
                                    "id": 503,
                                    "nodeType": "Return",
                                    "src": "2622:11:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 505,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [],
                        "name": "doFunding",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 416,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 407,
                                    "name": "_platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 505,
                                    "src": "1911:17:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 406,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1911:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 409,
                                    "name": "_platformId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 505,
                                    "src": "1930:18:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 408,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1930:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 411,
                                    "name": "_token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 505,
                                    "src": "1950:14:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 410,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1950:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 413,
                                    "name": "_value",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 505,
                                    "src": "1966:14:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 412,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1966:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 415,
                                    "name": "_funder",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 505,
                                    "src": "1982:15:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 414,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1982:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1910:88:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 419,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 418,
                                    "name": "success",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 505,
                                    "src": "2017:12:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 417,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2017:4:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2016:14:5"
                        },
                        "scope": 786,
                        "src": "1892:748:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 615,
                            "nodeType": "Block",
                            "src": "2789:781:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 526,
                                                        "name": "platform",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 507,
                                                        "src": "2818:8:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 527,
                                                        "name": "platformId",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 509,
                                                        "src": "2828:10:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 528,
                                                        "name": "solver",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 511,
                                                        "src": "2840:6:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 529,
                                                        "name": "solverAddress",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 513,
                                                        "src": "2848:13:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 530,
                                                        "name": "r",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 515,
                                                        "src": "2863:1:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 531,
                                                        "name": "s",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 517,
                                                        "src": "2866:1:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 532,
                                                        "name": "v",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 519,
                                                        "src": "2869:1:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint8",
                                                            "typeString": "uint8"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint8",
                                                            "typeString": "uint8"
                                                        }
                                                    ],
                                                    "id": 525,
                                                    "name": "validClaim",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 659,
                                                    "src": "2807:10:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint8_$returns$_t_bool_$",
                                                        "typeString": "function (bytes32,string memory,string memory,address,bytes32,bytes32,uint8) view returns (bool)"
                                                    }
                                                },
                                                "id": 533,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "2807:64:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 524,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4992,
                                            "src": "2799:7:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 534,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2799:73:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 535,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2799:73:5"
                                },
                                {
                                    "assignments": [
                                        537
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 537,
                                            "name": "tokenCount",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 616,
                                            "src": "2882:18:5",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 536,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "2882:7:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 543,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 540,
                                                "name": "platform",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 507,
                                                "src": "2938:8:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 541,
                                                "name": "platformId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 509,
                                                "src": "2948:10:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 538,
                                                "name": "fundRepository",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 292,
                                                "src": "2903:14:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_FundRepository_$1505",
                                                    "typeString": "contract FundRepository"
                                                }
                                            },
                                            "id": 539,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getFundedTokenCount",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 1397,
                                            "src": "2903:34:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_string_memory_ptr_$returns$_t_uint256_$",
                                                "typeString": "function (bytes32,string memory) view external returns (uint256)"
                                            }
                                        },
                                        "id": 542,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2903:56:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "2882:77:5"
                                },
                                {
                                    "body": {
                                        "id": 603,
                                        "nodeType": "Block",
                                        "src": "3007:463:5",
                                        "statements": [
                                            {
                                                "assignments": [
                                                    555
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 555,
                                                        "name": "token",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 616,
                                                        "src": "3021:13:5",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "typeName": {
                                                            "id": 554,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "3021:7:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 562,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 558,
                                                            "name": "platform",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 507,
                                                            "src": "3075:8:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 559,
                                                            "name": "platformId",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 509,
                                                            "src": "3085:10:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 560,
                                                            "name": "i",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 545,
                                                            "src": "3097:1:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 556,
                                                            "name": "fundRepository",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 292,
                                                            "src": "3037:14:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_FundRepository_$1505",
                                                                "typeString": "contract FundRepository"
                                                            }
                                                        },
                                                        "id": 557,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "getFundedTokensByIndex",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 1418,
                                                        "src": "3037:37:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$",
                                                            "typeString": "function (bytes32,string memory,uint256) view external returns (address)"
                                                        }
                                                    },
                                                    "id": 561,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3037:62:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "3021:78:5"
                                            },
                                            {
                                                "assignments": [
                                                    564
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 564,
                                                        "name": "tokenAmount",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 616,
                                                        "src": "3113:19:5",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "typeName": {
                                                            "id": 563,
                                                            "name": "uint256",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "3113:7:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 571,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 567,
                                                            "name": "platform",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 507,
                                                            "src": "3161:8:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 568,
                                                            "name": "platformId",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 509,
                                                            "src": "3171:10:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 569,
                                                            "name": "token",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 555,
                                                            "src": "3183:5:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 565,
                                                            "name": "fundRepository",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 292,
                                                            "src": "3135:14:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_FundRepository_$1505",
                                                                "typeString": "contract FundRepository"
                                                            }
                                                        },
                                                        "id": 566,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "claimToken",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 1322,
                                                        "src": "3135:25:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_address_$returns$_t_uint256_$",
                                                            "typeString": "function (bytes32,string memory,address) external returns (uint256)"
                                                        }
                                                    },
                                                    "id": 570,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3135:54:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "3113:76:5"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 577,
                                                                    "name": "solverAddress",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 513,
                                                                    "src": "3233:13:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 578,
                                                                    "name": "tokenAmount",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 564,
                                                                    "src": "3248:11:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 574,
                                                                            "name": "token",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 555,
                                                                            "src": "3217:5:5",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        ],
                                                                        "id": 573,
                                                                        "name": "ERC20",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 1791,
                                                                        "src": "3211:5:5",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_ERC20_$1791_$",
                                                                            "typeString": "type(contract ERC20)"
                                                                        }
                                                                    },
                                                                    "id": 575,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "3211:12:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_ERC20_$1791",
                                                                        "typeString": "contract ERC20"
                                                                    }
                                                                },
                                                                "id": 576,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "transfer",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 1745,
                                                                "src": "3211:21:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                    "typeString": "function (address,uint256) external returns (bool)"
                                                                }
                                                            },
                                                            "id": 579,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "3211:49:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        ],
                                                        "id": 572,
                                                        "name": "require",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4992,
                                                        "src": "3203:7:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                            "typeString": "function (bool) pure"
                                                        }
                                                    },
                                                    "id": 580,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3203:58:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 581,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3203:58:5"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 585,
                                                                    "name": "solverAddress",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 513,
                                                                    "src": "3308:13:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 586,
                                                                    "name": "platform",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 507,
                                                                    "src": "3323:8:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 587,
                                                                    "name": "platformId",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 509,
                                                                    "src": "3333:10:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_string_memory_ptr",
                                                                        "typeString": "string memory"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 588,
                                                                    "name": "solver",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 511,
                                                                    "src": "3345:6:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_string_memory_ptr",
                                                                        "typeString": "string memory"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 589,
                                                                    "name": "token",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 555,
                                                                    "src": "3353:5:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 590,
                                                                    "name": "tokenAmount",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 564,
                                                                    "src": "3360:11:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_string_memory_ptr",
                                                                        "typeString": "string memory"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_string_memory_ptr",
                                                                        "typeString": "string memory"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 583,
                                                                    "name": "claimRepository",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 294,
                                                                    "src": "3283:15:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_ClaimRepository_$968",
                                                                        "typeString": "contract ClaimRepository"
                                                                    }
                                                                },
                                                                "id": 584,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "addClaim",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 947,
                                                                "src": "3283:24:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                    "typeString": "function (address,bytes32,string memory,string memory,address,uint256) external returns (bool)"
                                                                }
                                                            },
                                                            "id": 591,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "3283:89:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        ],
                                                        "id": 582,
                                                        "name": "require",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4992,
                                                        "src": "3275:7:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                            "typeString": "function (bool) pure"
                                                        }
                                                    },
                                                    "id": 592,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3275:98:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 593,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3275:98:5"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 595,
                                                            "name": "solverAddress",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 513,
                                                            "src": "3395:13:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 596,
                                                            "name": "platform",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 507,
                                                            "src": "3410:8:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 597,
                                                            "name": "platformId",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 509,
                                                            "src": "3420:10:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 598,
                                                            "name": "solver",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 511,
                                                            "src": "3432:6:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 599,
                                                            "name": "token",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 555,
                                                            "src": "3440:5:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 600,
                                                            "name": "tokenAmount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 564,
                                                            "src": "3447:11:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "id": 594,
                                                        "name": "Claimed",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 290,
                                                        "src": "3387:7:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$returns$__$",
                                                            "typeString": "function (address,bytes32,string memory,string memory,address,uint256)"
                                                        }
                                                    },
                                                    "id": 601,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3387:72:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 602,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3387:72:5"
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 550,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 548,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 545,
                                            "src": "2986:1:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "id": 549,
                                            "name": "tokenCount",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 537,
                                            "src": "2990:10:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "2986:14:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 604,
                                    "initializationExpression": {
                                        "assignments": [
                                            545
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 545,
                                                "name": "i",
                                                "nodeType": "VariableDeclaration",
                                                "scope": 616,
                                                "src": "2974:6:5",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 544,
                                                    "name": "uint",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "2974:4:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "value": null,
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 547,
                                        "initialValue": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 546,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "2983:1:5",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "2974:10:5"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 552,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "3002:3:5",
                                            "subExpression": {
                                                "argumentTypes": null,
                                                "id": 551,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 545,
                                                "src": "3002:1:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 553,
                                        "nodeType": "ExpressionStatement",
                                        "src": "3002:3:5"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "2969:501:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 608,
                                                        "name": "platform",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 507,
                                                        "src": "3520:8:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 609,
                                                        "name": "platformId",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 509,
                                                        "src": "3530:10:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 606,
                                                        "name": "fundRepository",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 292,
                                                        "src": "3487:14:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_FundRepository_$1505",
                                                            "typeString": "contract FundRepository"
                                                        }
                                                    },
                                                    "id": 607,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "finishResolveFund",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 1344,
                                                    "src": "3487:32:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bool_$",
                                                        "typeString": "function (bytes32,string memory) external returns (bool)"
                                                    }
                                                },
                                                "id": 610,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "3487:54:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 605,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4992,
                                            "src": "3479:7:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 611,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3479:63:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 612,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3479:63:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 613,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3559:4:5",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "true"
                                    },
                                    "functionReturnParameters": 523,
                                    "id": 614,
                                    "nodeType": "Return",
                                    "src": "3552:11:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 616,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [],
                        "name": "claim",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 520,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 507,
                                    "name": "platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 616,
                                    "src": "2661:16:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 506,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2661:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 509,
                                    "name": "platformId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 616,
                                    "src": "2679:17:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 508,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2679:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 511,
                                    "name": "solver",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 616,
                                    "src": "2698:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 510,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2698:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 513,
                                    "name": "solverAddress",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 616,
                                    "src": "2713:21:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 512,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2713:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 515,
                                    "name": "r",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 616,
                                    "src": "2736:9:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 514,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2736:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 517,
                                    "name": "s",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 616,
                                    "src": "2747:9:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 516,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2747:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 519,
                                    "name": "v",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 616,
                                    "src": "2758:7:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                    },
                                    "typeName": {
                                        "id": 518,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2758:5:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2660:106:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 523,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 522,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 616,
                                    "src": "2783:4:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 521,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2783:4:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2782:6:5"
                        },
                        "scope": 786,
                        "src": "2646:924:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 658,
                            "nodeType": "Block",
                            "src": "3731:202:5",
                            "statements": [
                                {
                                    "assignments": [
                                        635
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 635,
                                            "name": "h",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 659,
                                            "src": "3741:5:5",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "typeName": null,
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 644,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 638,
                                                        "name": "platform",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 618,
                                                        "src": "3774:8:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 639,
                                                        "name": "platformId",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 620,
                                                        "src": "3784:10:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 640,
                                                        "name": "solver",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 622,
                                                        "src": "3796:6:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 641,
                                                        "name": "solverAddress",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 624,
                                                        "src": "3804:13:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 637,
                                                    "name": "createClaimMsg",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 696,
                                                    "src": "3759:14:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$returns$_t_string_memory_ptr_$",
                                                        "typeString": "function (bytes32,string memory,string memory,address) pure returns (string memory)"
                                                    }
                                                },
                                                "id": 642,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "3759:59:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            ],
                                            "id": 636,
                                            "name": "keccak256",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4983,
                                            "src": "3749:9:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                                                "typeString": "function () pure returns (bytes32)"
                                            }
                                        },
                                        "id": 643,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3749:70:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "3741:78:5"
                                },
                                {
                                    "assignments": [
                                        646
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 646,
                                            "name": "signerAddress",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 659,
                                            "src": "3829:21:5",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 645,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "3829:7:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 653,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 648,
                                                "name": "h",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 635,
                                                "src": "3863:1:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 649,
                                                "name": "v",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 630,
                                                "src": "3866:1:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint8",
                                                    "typeString": "uint8"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 650,
                                                "name": "r",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 626,
                                                "src": "3869:1:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 651,
                                                "name": "s",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 628,
                                                "src": "3872:1:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint8",
                                                    "typeString": "uint8"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            ],
                                            "id": 647,
                                            "name": "ecrecover",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4981,
                                            "src": "3853:9:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                                                "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)"
                                            }
                                        },
                                        "id": 652,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3853:21:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "3829:45:5"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 656,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 654,
                                            "name": "claimSignerAddress",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 296,
                                            "src": "3891:18:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "id": 655,
                                            "name": "signerAddress",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 646,
                                            "src": "3913:13:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "3891:35:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "functionReturnParameters": 634,
                                    "id": 657,
                                    "nodeType": "Return",
                                    "src": "3884:42:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 659,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": true,
                        "modifiers": [],
                        "name": "validClaim",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 631,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 618,
                                    "name": "platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 659,
                                    "src": "3596:16:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 617,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3596:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 620,
                                    "name": "platformId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 659,
                                    "src": "3614:17:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 619,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3614:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 622,
                                    "name": "solver",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 659,
                                    "src": "3633:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 621,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3633:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 624,
                                    "name": "solverAddress",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 659,
                                    "src": "3648:21:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 623,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3648:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 626,
                                    "name": "r",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 659,
                                    "src": "3671:9:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 625,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3671:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 628,
                                    "name": "s",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 659,
                                    "src": "3682:9:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 627,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3682:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 630,
                                    "name": "v",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 659,
                                    "src": "3693:7:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                    },
                                    "typeName": {
                                        "id": 629,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3693:5:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3595:106:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 634,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 633,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 659,
                                    "src": "3725:4:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 632,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3725:4:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3724:6:5"
                        },
                        "scope": 786,
                        "src": "3576:357:5",
                        "stateMutability": "view",
                        "superFunction": null,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 695,
                            "nodeType": "Block",
                            "src": "4069:231:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 690,
                                                                "name": "solverAddress",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 667,
                                                                "src": "4277:13:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 688,
                                                                "name": "strings",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4976,
                                                                "src": "4253:7:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_strings_$4976_$",
                                                                    "typeString": "type(library strings)"
                                                                }
                                                            },
                                                            "id": 689,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "addressToString",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 4854,
                                                            "src": "4253:23:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$",
                                                                "typeString": "function (address) pure returns (string memory)"
                                                            }
                                                        },
                                                        "id": 691,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "4253:38:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    ],
                                                    "id": 687,
                                                    "name": "prependUnderscore",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 738,
                                                    "src": "4235:17:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
                                                        "typeString": "function (string memory) pure returns (string memory)"
                                                    }
                                                },
                                                "id": 692,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "4235:57:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 683,
                                                                "name": "solver",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 665,
                                                                "src": "4207:6:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            ],
                                                            "id": 682,
                                                            "name": "prependUnderscore",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 738,
                                                            "src": "4189:17:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
                                                                "typeString": "function (string memory) pure returns (string memory)"
                                                            }
                                                        },
                                                        "id": 684,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "4189:25:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 678,
                                                                        "name": "platformId",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 663,
                                                                        "src": "4157:10:5",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_string_memory_ptr",
                                                                            "typeString": "string memory"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_string_memory_ptr",
                                                                            "typeString": "string memory"
                                                                        }
                                                                    ],
                                                                    "id": 677,
                                                                    "name": "prependUnderscore",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 738,
                                                                    "src": "4139:17:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
                                                                        "typeString": "function (string memory) pure returns (string memory)"
                                                                    }
                                                                },
                                                                "id": 679,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "4139:29:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 674,
                                                                        "name": "platform",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 661,
                                                                        "src": "4110:8:5",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "id": 672,
                                                                        "name": "strings",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 4976,
                                                                        "src": "4086:7:5",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_strings_$4976_$",
                                                                            "typeString": "type(library strings)"
                                                                        }
                                                                    },
                                                                    "id": 673,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "bytes32ToString",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 4975,
                                                                    "src": "4086:23:5",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$",
                                                                        "typeString": "function (bytes32) pure returns (string memory)"
                                                                    }
                                                                },
                                                                "id": 675,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "4086:33:5",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            },
                                                            "id": 676,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "strConcat",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 4611,
                                                            "src": "4086:52:5",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                                "typeString": "function (string memory,string memory) pure returns (string memory)"
                                                            }
                                                        },
                                                        "id": 680,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "4086:83:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_string_memory_ptr",
                                                            "typeString": "string memory"
                                                        }
                                                    },
                                                    "id": 681,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "strConcat",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 4611,
                                                    "src": "4086:102:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                        "typeString": "function (string memory,string memory) pure returns (string memory)"
                                                    }
                                                },
                                                "id": 685,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "4086:129:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            },
                                            "id": 686,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "strConcat",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4611,
                                            "src": "4086:148:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                "typeString": "function (string memory,string memory) pure returns (string memory)"
                                            }
                                        },
                                        "id": 693,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4086:207:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                        }
                                    },
                                    "functionReturnParameters": 671,
                                    "id": 694,
                                    "nodeType": "Return",
                                    "src": "4079:214:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 696,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": true,
                        "modifiers": [],
                        "name": "createClaimMsg",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 668,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 661,
                                    "name": "platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 696,
                                    "src": "3963:16:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 660,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3963:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 663,
                                    "name": "platformId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 696,
                                    "src": "3981:17:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 662,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3981:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 665,
                                    "name": "solver",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 696,
                                    "src": "4000:13:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 664,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4000:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 667,
                                    "name": "solverAddress",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 696,
                                    "src": "4015:21:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 666,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4015:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3962:75:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 671,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 670,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 696,
                                    "src": "4061:6:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 669,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4061:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4060:8:5"
                        },
                        "scope": 786,
                        "src": "3939:361:5",
                        "stateMutability": "pure",
                        "superFunction": null,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 711,
                            "nodeType": "Block",
                            "src": "4371:64:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 707,
                                                        "name": "_precondition",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 698,
                                                        "src": "4413:13:5",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 706,
                                                    "name": "Precondition",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1571,
                                                    "src": "4400:12:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Precondition_$1571_$",
                                                        "typeString": "type(contract Precondition)"
                                                    }
                                                },
                                                "id": 708,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "4400:27:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_Precondition_$1571",
                                                    "typeString": "contract Precondition"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_contract$_Precondition_$1571",
                                                    "typeString": "contract Precondition"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 703,
                                                "name": "preconditions",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 299,
                                                "src": "4381:13:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_Precondition_$1571_$dyn_storage",
                                                    "typeString": "contract Precondition[] storage ref"
                                                }
                                            },
                                            "id": 705,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "push",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "4381:18:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_Precondition_$1571_$returns$_t_uint256_$",
                                                "typeString": "function (contract Precondition) returns (uint256)"
                                            }
                                        },
                                        "id": 709,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4381:47:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 710,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4381:47:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 712,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [
                            {
                                "arguments": [],
                                "id": 701,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 700,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 220,
                                    "src": "4361:9:5",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "4361:9:5"
                            }
                        ],
                        "name": "addPrecondition",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 699,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 698,
                                    "name": "_precondition",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 712,
                                    "src": "4331:21:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 697,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4331:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4330:23:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 702,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "4371:0:5"
                        },
                        "scope": 786,
                        "src": "4306:129:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 724,
                            "nodeType": "Block",
                            "src": "4499:45:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 722,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "UnaryOperation",
                                        "operator": "delete",
                                        "prefix": true,
                                        "src": "4509:28:5",
                                        "subExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 719,
                                                "name": "preconditions",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 299,
                                                "src": "4516:13:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_Precondition_$1571_$dyn_storage",
                                                    "typeString": "contract Precondition[] storage ref"
                                                }
                                            },
                                            "id": 721,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 720,
                                                "name": "_index",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 714,
                                                "src": "4530:6:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "4516:21:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_Precondition_$1571",
                                                "typeString": "contract Precondition"
                                            }
                                        },
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 723,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4509:28:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 725,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [
                            {
                                "arguments": [],
                                "id": 717,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 716,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 220,
                                    "src": "4489:9:5",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "4489:9:5"
                            }
                        ],
                        "name": "removePrecondition",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 715,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 714,
                                    "name": "_index",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 725,
                                    "src": "4469:11:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 713,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4469:4:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4468:13:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 718,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "4499:0:5"
                        },
                        "scope": 786,
                        "src": "4441:103:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 737,
                            "nodeType": "Block",
                            "src": "4620:42:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 734,
                                                "name": "str",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 727,
                                                "src": "4651:3:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "hexValue": "5f",
                                                "id": 732,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "4637:3:5",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_cd5edcba1904ce1b09e94c8a2d2a85375599856ca21c793571193054498b51d7",
                                                    "typeString": "literal_string \"_\""
                                                },
                                                "value": "_"
                                            },
                                            "id": 733,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "strConcat",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4611,
                                            "src": "4637:13:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                "typeString": "function (string memory,string memory) pure returns (string memory)"
                                            }
                                        },
                                        "id": 735,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4637:18:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                        }
                                    },
                                    "functionReturnParameters": 731,
                                    "id": 736,
                                    "nodeType": "Return",
                                    "src": "4630:25:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 738,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": true,
                        "modifiers": [],
                        "name": "prependUnderscore",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 728,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 727,
                                    "name": "str",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 738,
                                    "src": "4577:10:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 726,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4577:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4576:12:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 731,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 730,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 738,
                                    "src": "4612:6:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                    },
                                    "typeName": {
                                        "id": 729,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4612:6:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string storage pointer"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4611:8:5"
                        },
                        "scope": 786,
                        "src": "4550:112:5",
                        "stateMutability": "pure",
                        "superFunction": null,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 751,
                            "nodeType": "Block",
                            "src": "4740:68:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 749,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 745,
                                            "name": "fundRepository",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 292,
                                            "src": "4750:14:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_FundRepository_$1505",
                                                "typeString": "contract FundRepository"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 747,
                                                    "name": "_repositoryAddress",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 740,
                                                    "src": "4782:18:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "id": 746,
                                                "name": "FundRepository",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1505,
                                                "src": "4767:14:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_FundRepository_$1505_$",
                                                    "typeString": "type(contract FundRepository)"
                                                }
                                            },
                                            "id": 748,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "4767:34:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_FundRepository_$1505",
                                                "typeString": "contract FundRepository"
                                            }
                                        },
                                        "src": "4750:51:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_FundRepository_$1505",
                                            "typeString": "contract FundRepository"
                                        }
                                    },
                                    "id": 750,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4750:51:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 752,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [
                            {
                                "arguments": [],
                                "id": 743,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 742,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 220,
                                    "src": "4730:9:5",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "4730:9:5"
                            }
                        ],
                        "name": "setFundRepository",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 741,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 740,
                                    "name": "_repositoryAddress",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 752,
                                    "src": "4695:26:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 739,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4695:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4694:28:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 744,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "4740:0:5"
                        },
                        "scope": 786,
                        "src": "4668:140:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 765,
                            "nodeType": "Block",
                            "src": "4885:68:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 763,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 759,
                                            "name": "claimRepository",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 294,
                                            "src": "4895:15:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_ClaimRepository_$968",
                                                "typeString": "contract ClaimRepository"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 761,
                                                    "name": "_claimRepository",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 754,
                                                    "src": "4929:16:5",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "id": 760,
                                                "name": "ClaimRepository",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 968,
                                                "src": "4913:15:5",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_ClaimRepository_$968_$",
                                                    "typeString": "type(contract ClaimRepository)"
                                                }
                                            },
                                            "id": 762,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "4913:33:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_ClaimRepository_$968",
                                                "typeString": "contract ClaimRepository"
                                            }
                                        },
                                        "src": "4895:51:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_ClaimRepository_$968",
                                            "typeString": "contract ClaimRepository"
                                        }
                                    },
                                    "id": 764,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4895:51:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 766,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [
                            {
                                "arguments": [],
                                "id": 757,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 756,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 220,
                                    "src": "4875:9:5",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "4875:9:5"
                            }
                        ],
                        "name": "setClaimRepository",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 755,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 754,
                                    "name": "_claimRepository",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 766,
                                    "src": "4842:24:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 753,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4842:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4841:26:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 758,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "4885:0:5"
                        },
                        "scope": 786,
                        "src": "4814:139:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 780,
                            "nodeType": "Block",
                            "src": "5072:57:5",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 778,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 776,
                                            "name": "claimSignerAddress",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 296,
                                            "src": "5082:18:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 777,
                                            "name": "_claimSignerAddress",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 768,
                                            "src": "5103:19:5",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "5082:40:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 779,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5082:40:5"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 781,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "id": 771,
                                        "name": "_claimSignerAddress",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 768,
                                        "src": "5034:19:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    }
                                ],
                                "id": 772,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 770,
                                    "name": "addressNotNull",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 313,
                                    "src": "5019:14:5",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "5019:35:5"
                            },
                            {
                                "arguments": [],
                                "id": 774,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 773,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 220,
                                    "src": "5062:9:5",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "5062:9:5"
                            }
                        ],
                        "name": "setClaimSignerAddress",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 769,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 768,
                                    "name": "_claimSignerAddress",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 781,
                                    "src": "4990:27:5",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 767,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4990:7:5",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4989:29:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 775,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "5072:0:5"
                        },
                        "scope": 786,
                        "src": "4959:170:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 784,
                            "nodeType": "Block",
                            "src": "5153:50:5",
                            "statements": []
                        },
                        "documentation": null,
                        "id": 785,
                        "implemented": true,
                        "isConstructor": false,
                        "isDeclaredConst": false,
                        "modifiers": [],
                        "name": "",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 782,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "5143:2:5"
                        },
                        "payable": false,
                        "returnParameters": {
                            "id": 783,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "5153:0:5"
                        },
                        "scope": 786,
                        "src": "5135:68:5",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    }
                ],
                "scope": 787,
                "src": "435:4770:5"
            }
        ],
        "src": "0:5205:5"
    },
    "compiler": {
        "name": "solc",
        "version": "0.4.21+commit.dfe3193c.Emscripten.clang"
    },
    "networks": {
        "42": {
            "events": {},
            "links": {},
            "address": "0x0ade7b8f58ba034a2a818f1fd48c3c92039c1cc8",
            "transactionHash": "0x4e2f8764de972d90eb378af00644e7f19145f217306bed6a9594d894d6f229ec"
        }
    },
    "schemaVersion": "2.0.0",
    "updatedAt": "2018-04-05T08:55:09.108Z"
}